列表、数组、张量的联系与区别

不给力英文列表、数组、张量的联系与区别
1. list和ndarray
最⼤区别在于在内存中存储⽅式不同
相同:
护理安全列表 ( list ) 与数组(ndarray)类似,是具有相同类型的多个元素构成的整体。
list和array都可以根据索引、切⽚来取其中的元素。
区别:
成人博客数组在内存中是连续的,数组⾥的元素都是同⼀类,所以⼀旦确定了⼀个数组,它的内存就确定了,因此不能像列表⼀样通
过.append()追加。列表中保存的是数据的存放的地址,简单的说就是指针并⾮数据,所以可以可以存储不同的类型,由于地址不⽤连续,所以可以通过.append()把元素的地址追加进去,由于每个元素都需要⼀个地址,增加了堆内存和CPU的开⽀。
列表不能对整体进⾏数值运算,但是数组能对整体进⾏数值运算 。
数组底层使⽤C语⾔编写,运算速度快,并且具有强⼤的运算能⼒。
import numpy as np
# 1. 列表
a =[1,2]
a.append(3)
print("数组可以追加为:", a)
玻璃模具# 2. 数组
b = np.array([1,2])
# b.append(3) # 会报错“'numpy.ndarray' object has no attribute 'append'”
2. ndarray和tensor
一株紫丁香教学设计
最⼤区别在于值是否可以改变(数据运⾏的设备)
相同:
tensor内部的数据类型为ndarray类型
区别:古代航海技术
tensor可以有加速器内存(如GPU)⽀持,既可以在CPU上运⾏也可以在GPU上运⾏。ndarray只能在CPU上运⾏。
ndarray在CPU上运⾏,因此可以改变其数值。tensor的值可以驻留在GPU上加速,GPU不具有改变元素值的能⼒,因此tensor的值不可以改变。
import tensorflow as tf
import numpy as np
# 1. ndarray
a = np.array([1,2,3])
a[1]=3
print("可以改变数组值为:", a)
# 2. tensor
b = tf.constant([1,2,3])
# b[1] = 3  # 会报错“'tensorflow.python.framework.ops.EagerTensor' object does not support item assignment”

本文发布于:2024-09-21 22:52:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/531254.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:DTI中地FA值
下一篇:张量的核范数
标签:数组   元素   内存   地址   数据   整体   改变
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议