Numpy對象是元素具有相同類型(通常為數字)并以整數元組作為索引的一維或多維數組。數組的索引整數元組包含的整數個數被稱為數組的階。
ndarrray
Numpy數組的類型被稱為ndarray。注意,Numpy數組并不等同于標準的Python數組。
-
.ndim
:數組的階 -
.shape
:數組的形狀,將返回一個整數元組,整數元組第n(n<階數)個數表示第n維的長度 -
.size
:數組包含的所有元素的個數 -
.dtype
:數組元素的類型 -
.itemsize
:數組每個元素所占字節數,例如int32為4個字節,float64為8個字節 -
.data
:數組在內存中儲存的地址。
import numpy as np
a = np.arange(15).reshape(3, 5)
print a
print(a.shape)
print(a.ndim)
print(a.dtype.name)
print(a.size)
print(type(a))
b = np.array([6, 7, 8])
print(b)
print(type(b))
Numpy數組的復制
-
數組引用
引用數組并不會創建一個新的數組,新數組和源數組其實是一個對象。 -
數組淺復制
淺復制會創建一個新的數組對象,新的數組對象有獨立的形狀等屬性,但和源數組共享數據。淺復制數組用view()
函數。
import numpy as np
a = np.arange(12).reshape(3, 4)
c = a.view()
print(c is a) # False
print(c.base is a) # True
print(c.flags.owndata) # False
c.shape = (2, 6)
print(a.shape) # (3, 4)
c[0, 4] = 1234
print(a)
-
數組深復制
深復制會創建一個新的數組對象,新的數組對象有獨立的屬性和數據。深復制數組用copy()
函數。
import numpy as np
a = np.arange(12).reshape(3, 4)
d = a.copy()
print(d is a) # False
print(d.base is a) # False
d[0, 0] = 9999
print(a)