小马过_河

导航

numpy.array

关于python中的二维数组,主要有list和numpy.array两种。 
好吧,其实还有matrices,但它必须是2维的,而numpy arrays (ndarrays) 可以是多维的。 
我们主要讨论list和numpy.array的区别: 
我们可以通过以下的代码看出二者的区别

 1 >>import numpy as np
 2 >>a=[[1,2,3],[4,5,6],[7,8,9]]
 3 >>a
 4 [[1,2,3],[4,5,6],[7,8,9]]
 5 >>type(a)
 6 <type 'list'>
 7 >>b=np.array(a)"""List to array conversion"""
 8 >>type(b)
 9 <type 'numpy.array'>
10 >>b
11 array=([[1,2,3],
12         [4,5,6],
13         [7,8,9]])

list对应的索引输出情况:

 1 >>a[1][1]
 2 5
 3 >>a[1]
 4 [4,5,6]
 5 >>a[1][:]
 6 [4,5,6]
 7 >>a[1,1]"""相当于a[1,1]被认为是a[(1,1)],不支持元组索引"""
 8 Traceback (most recent call last):
 9   File "<stdin>", line 1, in <module>
10 TypeError: list indices must be integers, not tuple
11 >>a[:,1]
12 Traceback (most recent call last):
13   File "<stdin>", line 1, in <module>
14 TypeError: list indices must be integers, not tuple

numpy.array对应的索引输出情况:

>>b[1][1]
5
>>b[1]
array([4,5,6])
>>b[1][:]
array([4,5,6])
>>b[1,1]
5
>>b[:,1]
array([2,5,8])

 

由上面的简单对比可以看出, numpy.array支持比list更多的索引方式,这也是我们最经常遇到的关于两者的区别。此外从[Numpy-快速处理数据]上可以了解到“由于list的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],有3个指针和3个整数对象。”

posted on 2017-12-28 15:15  小马过_河  阅读(484)  评论(0编辑  收藏  举报