NumPy ndarray:多維數組對象
NumPy的核心特征之一就是 N-維數組對象——ndarray。
ndarray是Python中的一個快速、靈活的大型數據集容器。數字允許你使用類似於標量的操作語法在整塊數據上進行數學計算。
首先要導入NumPy模塊
import numpy as np
生成ndarray
生成數組對象最簡單的方式就是使用array函數。 array函數接收任意的序列型對象(當然也包括其他的數組),生成一個新的包含傳遞數據的NumPy數組。
生成一維數組:
data1 = [6,7.5,8,0,1]
arr1 = np.array(data1)
print(arr1)
[6. 7.5 8. 0. 1. ]
生成二維數組:
data2 = [[1,2,3,4],[5,6,7,8]]
arr2 = np.array(data2)
print(arr2)
print(arr2.ndim)
print(arr2.shape)
[[1 2 3 4]
[5 6 7 8]]
2
(2, 4)
ndim 與 shape
這兩個屬性都是用來表示數組的。
ndim 用來表示這個數組是幾維的
shape 用來表示這是一個幾乘幾的數組
dtype
除非顯式的指定,否則 np.array 會自動推斷生成數組的數據類型。 比如你的數組中如果有一個數字是浮點型的話 ,那么這個數據將會被自動推斷為float型數組,並且數據類型將會被存儲在一個特殊的元數據dtype中。
print(arr1.dtype)
print(arr2.dtype)
float64
int32
numpy 生成數組的函數:
函數名 | 描述
-----------函數名----- | 描述 |
---|---|
array | 將輸入數據(可以是列表、元組、數組以及其他序列)轉換為ndarray,如不顯式得指明數據類型, 將自動推斷;默認復制所有的輸入數據 |
asarray | 將輸入轉換為ndarray,但如果輸入已經是ndarray則不再復制,他和array的區別在於,當數據源是ndarray對象時,array仍會copy出一個副本,占用新的內存,但是asarray不會 |
arange | Python內建函數range的數組版,返回一個數組例如 [1,2,3,4.....] |
ones | 根據給定形狀和數據類型生成全1的數組 |
ones_like | 根據所給的數組生成一個形狀一樣的全1的數組 |
zeros | 根據給定形狀和數據類型生成一個全0數組 |
zeros_like | 根據所給的數組生成一個形狀一樣的全0數組 |
empty | 根據給定形狀生成一個沒有初始化數值的空數組 |
empty_like | 根據所給數組生成一個形狀一樣但是沒有初始化數值的空數組 |
full | 根據給定的形狀和數組類型生成指定數值的數組 np.full(形狀,填充值,dtype=數據類型) |
full_like | 根據所給數組生成一個形狀一樣但是內容是指定數值的數組,只需把形狀參數改成一個ndarray對象就可以了 |
eyes | 生成一個N*N特征矩陣 ,對角線位置全都是1,其余位置都是0,兩者的區別在於,前者可以控制矩陣的形狀,而后者只能是正方形矩陣 |