这篇文章主要介绍python中数组和列表怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
#环境win64+anaconda+python3.6
(1)list不具有array的全部属性(如维度、转置等)
代码1:
#eg1_1 import numpy as np a = np.array([[1,2,0,1],[1,6,9,55],[7,8,9,5]])#a为数组 print(a.T) #Result: [[ 1 1 7] [ 2 6 8] [ 0 9 9] [ 1 55 5]] #eg1_2 a = [[1,2,0,1],[1,6,9,55],[7,8,9,5]] #a为列表 print(a.T) #Result: 'list' object has no attribute 'T'
代码2:
#eg1_3 import numpy as np a=np.array([[1,2,3],[1,1,4],[1,5,1]]) print(a.shape) #Result: (3, 3) #eg1_4 a=[[1,2,3],[1,1,4],[1,5,1]] print(a.shape) #Result 'list' object has no attribute 'shape'
(顺带一提,如何把一个数组转化为列向量:↓)
import numpy as np a=np.array([[1,2,3],[1,1,4],[1,5,1]]) a=a.reshape(-1,1) print(a) #Result: [[1] [2] [3] [1] [1] [4] [1] [5] [1]]
(2)a[:m]的含义,a可以是列表或者数组,但是无论是哪种情况,a[:0]为空
#eg2_1 import numpy as np a=np.array([[4,1,2], [7,4,10], [12,17,88]]) #a=np.array([(4,1,2), # (7,4,10), # (12,17,88)]) 这两个a中[和(不一样,其实它们完全一样 print(a[:0]) print(a[:1]) print(a[:2]) #Result: [] [[4 1 2]] [[ 4 1 2] [ 7 4 10]] #eg2_1 a=[(4,1,2),(7,4,10),(12,17,88)] print(a[:0]) print(a[:1]) print(a[:2]) #Result: [] [(4, 1, 2)] [(4, 1, 2), (7, 4, 10)]
(3)array和list关于“==”的计算
#eg3_1 import numpy as np a=np.array(['dog','cat','car']) b=np.array(['dog','cat','trunk']) acc = (np.mean(a == b)) print(acc) #Result 0.6666666666666666 #eg3_2 import numpy as np a=['dog','cat','car'] b=['dog','cat','trunk'] acc = (np.mean(a == b)) print(acc) #Result 0.0
(4)array和list关于“*”的计算
from numpy import * #a为数组 a=array([[1,2,3], [4,5,6]]) b=4*a print(b) [[ 4 8 12] [16 20 24]] from numpy import * #a为列表 a=([[1,2,3], [4,5,6]]) b=4*a print(b) [[1, 2, 3], [4, 5, 6], [1, 2, 3], [4, 5, 6], [1, 2, 3], [4, 5, 6], [1, 2, 3], [4, 5, 6]]
1、二者都可以用于处理多维数组。
Numpy中的ndarray对象用于处理多维数组,它作为一个快速而灵活的大数据容器。Python列表可以存储一维数组,通过列表的嵌套可以实现多维数组。
2、存储效率和输入输出性能不同。
Numpy专门针对数组的操作和运算进行了设计,存储效率和输入输出性能远优于Python中的嵌套列表,数组越大,Numpy的优势就越明显。
3、元素数据类型。
通常,Numpy数组中的所有元素的类型都必须相同的,而Python列表中的元素类型是任意的,所以在通用性能方面Numpy数组不及Python列表,但在科学计算中,可以省掉很多循环语句,代码使用方面比Python列表简单的多。
以上是“python中数组和列表怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。