Numpy_01 建立 指定資料型別 檢視維度和資料型別 簡單的數學運算
阿新 • • 發佈:2018-12-11
安裝numpy 通過命令提示符 pip install numpy 或者通過第三方發放版 Anaconda 進行滑鼠操作安裝
建立陣列
直接通過numpy建立
import numpy as np # 匯入numpy包
# 生成一些隨機資料 二行三列的矩陣
data = np.random.randn(2, 3) # 生成隨機數 二行三列的陣列
print(data)
通過將列表(list)轉換為陣列
data1 = [6, 7.5, 8, 0, 1] # 建立一個列表
arr1 = np.array(data1) # 將列表轉換為陣列
print(arr1) # 列印這個陣列
巢狀列表會被轉換為多維陣列
data2 = [[1, 2, 3, 4], [5, 6, 7, 8]] # 建立一個巢狀列表
arr2 = np.array(data2) # 將列表轉換為陣列 二行四列的陣列
print(arr2) # 列印這個陣列
建立arange陣列
print(np.arange(15)) # 生成一個一行十五列 值為 0~14 的 型別為 int 的陣列
建立特定陣列
print(np.zeros(10) ) # 建立一行十列 值全為0 型別為 float 的陣列
print(np.zeros((3, 6))) # 建立三行六列 值全為0 型別為 float 的陣列
print(np.empty((2, 3, 2))) # 返回一個 兩層 三行兩列的 值為未初始化的垃圾值 型別為float 的陣列
print(np.full((3,3), 2) # 建立了一個 3 * 3 值全為 2 的陣列
建立陣列的各種方式如下表
建立ndarray指定資料型別:
資料型別的表如下:
指定資料型別 建立ndarray
arr1 = np.array([1, 2, 3], dtype= np.float64) # 指定資料型別為 float64位
arr2 = np.array([1, 2, 3], dtype=np.int32) # 指定資料型別為 int32位
print(arr1.dtype) # 打印出arr1的資料型別
print(arr2.dtype) # 打印出arr2的資料型別
轉換ndarray陣列的資料型別
arr = np.array([1, 2, 3, 4, 5]) # 建立一個 預設 int32 型別的陣列
print(arr.dtype) # 列印這個陣列的型別
float_arr = arr.astype(np.float64) # 將這個陣列轉化為 float64 位的陣列
print(float_arr.dtype) # 列印這個陣列的型別
轉換資料型別時的特別注意事項
arr = np.array([3.7, -1.2, -2.6, 0.5, 12.9, 10.1]) # 建立了一個 float64 位的陣列
print(arr) # 列印一下
print(arr.astype(np.int32)) # 列印 轉換這個陣列之後的值 將 float64 位轉換為 int32 位之後 小數部分會被捨棄
如果字串陣列全是數字 也可使用 astype 將其轉換為數值形式
numeric_strings = np.array(['1.25', '-9.6', '42'], dtype=np.string_) # 建立一個 字串陣列 內容全為數值
print(numeric_strings.astype(float)) # 將這個 全是數值的 字串型別的陣列 轉換為 float 型別的陣列
dtype還有一個屬性
int_array = np.arange(10) # 建立了一個 int 型別的陣列
calibers = np.array([.22, .270, .357, .380, .44, .50], dtype=np.float64) # 建立了一個 float 型別的陣列
print(int_array.astype(calibers.dtype)) # 將 float型別的陣列型別 賦給 int 型別的陣列
檢視陣列的維度和陣列的資料型別:
print('data shape:', data.shape) # 列印陣列的維度
print('data dtype:', data.dtype) # 列印陣列的型別
單獨檢視維度 和 檢視維度
print(arr2.ndim) # 只顯示是幾維
print(arr2.shape) # 顯示幾行幾列 幾層
數學運算:
矩陣乘法:
#所有元素都乘以10
print('data * 10: \n', data * 10)
陣列乘陣列 對應位置直接相乘得結果
data = np.array([[1., 2., 3.], [4., 5., 6.]]) # 建立一個數組
print(data) # 打印出這個陣列
print(data * data) # 陣列對應位置相乘即結果
矩陣除法和平方:
print(1 / data) # 每一個位置 用 1 除以 得出結果
print(data ** 0.5) # 每個位置 的 0.5 次方得出結果
矩陣加法減法:
#每個元素與自身相加 對應位置直接相加得出結果
print('data + data : \n', data + data)
print(data - data) # 每個位置對應相減得出結果
陣列的比較會生成布林型別的陣列:
arr2 = np.array([[0., 4., 1.], [7., 2., 12.]])
print(arr2)
print(arr2 > arr) # 返回一個布林型別的陣列