python中的二維數(shù)組铡溪,主要有 list(列表) 和 numpy.ndarray(多維數(shù)組) 兩種, 兩種的區(qū)別主要體現(xiàn)在numpy.ndarray 支持更多的索引方式斑粱,下面通過代碼來看一下兩種數(shù)據(jù)類型索引方式的區(qū)別:
import numpy as np
a=[[1,2,3], [4,5,6]]
type(a)
<type 'list'>
a
[[1, 2, 3], [4, 5, 6]]
b=np.array(a)
type(b)
<type 'numpy.ndarray'>
b
array([[1, 2, 3],
[4, 5, 6]])
接著對a 和b 中的元素進行訪問:
a[1]
[4, 5, 6]
b[1]
array([4, 5, 6])
a[1][1]
5
b[1][1]
5
a[1][:]
[4, 5, 6]
b[1][:]
array([4, 5, 6])
#下面就是兩者的區(qū)別
a[1,1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not tuple
b[1,1]
5
a[:,1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not tuple
b[:,1]
array([2, 5])
可以看到numpy.ndarray 比list的訪問方式更靈活,因此在處理數(shù)據(jù)時凤优,可以通過np.array()方便的將list轉(zhuǎn)化為numpy.ndarray, 當(dāng)然處理完后還可以通過tolist()將ndarray再轉(zhuǎn)回列表尔许,從而方便刪除或添加元素睛低。
import numpy as np
a=[[1,2,3],[4,5,6]]
type(a)
<type 'list'>
b=np.array(a)
type(b)
<type 'numpy.ndarray'>
c=b.tolist()
type(c)
<type 'list'>