1. 程式人生 > >numpy.array

numpy.array

nbsp arrays module bsp 元素 二維 mat ice html

關於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個整數對象。”

numpy.array