Sco*_*ler 1 python arrays numpy list multidimensional-array
在简单地查看numpy数组之后,我不明白它们与普通Python列表的区别.有人可以解释这个区别,为什么我会使用numpy数组而不是列表?
NumPy数组专门用于处理多维数字数据,并支持任意对象的数组.它们提供快速的矢量化操作和方便的语法.
>>> x = numpy.arange(4).reshape((2, 2))
>>> x
array([[0, 1],
[2, 3]])
>>> x.T # Transpose.
array([[0, 2],
[1, 3]])
>>> x.max()
3
>>> x * 4
array([[ 0, 4],
[ 8, 12]])
>>> x[:, 1] # Slice to select the second column.
array([1, 3])
>>> x[:, 1] *= 2
>>> x
array([[0, 2],
[2, 6]])
>>> timeit.timeit('x * 5',
... setup='import numpy; x = numpy.arange(1000)',
... number=100000)
0.4018515302670096
>>> timeit.timeit('[item*5 for item in x]',
... setup='x = range(1000)',
... number=100000)
8.542360042395984
Run Code Online (Sandbox Code Playgroud)
相比之下,列表基本上面向一维数据.您可以拥有列表列表,但这不是2D列表.您不能方便地获取表示为列表列表的2D数据集的最大值; 调用max它将按字典顺序比较列表并返回列表.列表适用于同类对象序列,但是如果你正在进行数学运算,那么你需要numpy,而你需要ndarrays.