python中数组和列表的简单实例
#环境win64+anaconda+python3.6
list & array
(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]]
python列表和Numpy数组的区别
1、二者都可以用于处理多维数组。
Numpy中的ndarray对象用于处理多维数组,它作为一个快速而灵活的大数据容器。Python列表可以存储一维数组,通过列表的嵌套可以实现多维数组。
2、存储效率和输入输出性能不同。
Numpy专门针对数组的操作和运算进行了设计,存储效率和输入输出性能远优于Python中的嵌套列表,数组越大,Numpy的优势就越明显。
3、元素数据类型。
通常,Numpy数组中的所有元素的类型都必须相同的,而Python列表中的元素类型是任意的,所以在通用性能方面Numpy数组不及Python列表,但在科学计算中,可以省掉很多循环语句,代码使用方面比Python列表简单的多。
总结
到此这篇关于python中数组和列表的文章就介绍到这了,更多相关python数组和列表内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341