生成隨機數組
import numpy as np #匯入numpy模組
#生成隨機數組
data = np.random.randn(2,
2)#定義生成為2行2列的二維陣列
data
#輸出array的2行2列的多維陣列
array([[
-1.13431267
,0.62352469],
[-0.63744491,-
0.26528683]]
)
#所有的元素同時都乘以10
data *
10array([[
-11.34312675
,6.23524693],
[-6.37444905,-
2.65286835]]
)#對應元素進行了相加
data + data
rray([[
-2.26862535
,1.24704939],
[-1.27488981,-
0.53057367]]
)
檢視陣列的資料型別
#shape用來描述陣列每一維度的數量
data.shape
#說明data是乙個2行2列的多維陣列(2,
2)#dtype用來描述陣列的資料型別
data.dtype
#float64 標準的雙精度浮點數
dtype(
'float64'
)
每乙個陣列都有乙個shape屬性和dtype屬性生成nadarray
生成陣列最簡單的方式是使用array函式
data1 =[1
,2.5,5
,4,3
]arr1 = np.array(data1)
arr1
array([1
.,2.5,5.
,4.,
3.])
#觀察發現 除了浮點數 其他的元素都預設在後面生成了乙個 . 都變成了乙個浮點數
#巢狀序列,如果長度相同,會自動轉換成多維陣列
data2 =[[
1,2,
3,4]
,[5,
6,7,
8]]arr2 = np.arrary(data2)
arr2
array([[
1,2,
3,4]
,[5,
6,7,
8]])
陣列運算
arr = np.array([[
1.,2
.,3.
],[4
.,5.
,6.]
])#相乘arr * arr
array([[
1.,4
.,9.
],[16
.,25.
,36.]
])#相減arr - arr
array([[
0.,0
.,0.
],[0
.,0.
,0.]
])#相除2
/ arr
array([[
2.,1
.,0.66666667],
[0.5
,0.4
,0.33333333]]
)#冪運算
arr **
2array([[
1.,4
.,9.
],[16
.,25.
,36.]
])
一維陣列的索引和切片和python非常相似,有python基礎的話很容易理解一維陣列的操作
#arange 和 python中的range()等同
arr = np.arange(10)
arrarray([0
,1,2
,3,4
,5,6
,7,8
,9])
#索引第乙個元素
arr[0]
0#切出 下標為3 到 5的元素,因為和range等同,所以也是為左閉右開 arr([a:b]) -> a 至 b-1
arr[3:
6]array([3
,4,5
])#將下標為3 到 5的元素位置的元素修改為10
arr[3:
6]=10
arrarray([0
,1,2
,10,10
,10,6
,7,8
,9])
#當然也可以單個更改
arr[0]
=200
arrarray(
[200,1
,2,10
,10,10
,6,7
,8,9
])
2.二維陣列的操作
在乙個二維陣列中,每個索引值對應的元素不再是乙個值 而是乙個一維陣列
#和python基礎中 其實大同小異
arr2 = np.array([[
1,2,
3],[
4,5,
6],[
7,8,
9]])
arr2[0]
array([1
,2,3
])
#單個元素可以通過遞迴的方式獲取
#方法一
arr2[0]
[2]#在arr2中獲取第乙個列表[1,2,3]再從在中獲取下標為2的元素
3#方法二
arr2[0,
2]#在arr2中獲取第乙個列表[1,2,3]再從在中獲取下標為2的元素
3
arr3 = np.array([[
[1,2
,3],
[4,5
,6]]
,[[7
,8,9
],[10
,11,12
]]])
arr3
array([[
[1,2
,3],
[4,5
,6]]
,[[7
,8,9
],[10
,11,12
]]])
#因為arr3是乙個兩行三列的陣列 所以第乙個是([1,2,3],[4,5,6])
arr3[0]
array([1
,2,3
],[4
,5,6
])#複製arr3[0]的值給data_value
data_value = arr3[0]
.copy(
)#將第一位的所有元素的值更改為42
arr3[0]
=42array([[
[42,42
,42],
[42,42
,42]]
,[[7
,8,9
],[10
,11,12
]]])
#將data_value重新賦值給arr3[0]
arr3 [0]
= data_value
arr3
array([[
[1,2
,3],
[4,5
,6]]
,[[7
,8,9
],[10
,11,12
]]])
#類似的 arr3[1,0]返回的是乙個一維陣列
arr3[1,
0]array([7
,8,9
])
實用基礎 python numpy
對應元素相乘 np.multiply x np.array 2,2,2 3,4,5 矩陣按行寫入 y np.array 1,2,3 1,2,3 print x y print np.multiply x,y 矩陣相乘 a np.array 1,2 1,1 按行輸入 b np.array 2,3 1,...
Python NumPy數值計算基礎1
numpy是用於資料科學計算的基礎模組,不但能夠完成科學計算的任務,而且能夠被作為高維資料的容器,可用於儲存和處理大型矩陣。陣列ndarray的屬性包括以下幾個 屬性說明 ndim 陣列的維數 shape 陣列的形狀 對於m n的矩陣,形狀為 m,n size 陣列的尺寸,即元素個數 dtype 陣...
python numpy模組學習(超級基礎)
import numpy as np 讀取txt檔案 txt np.genfromtxt test.txt delimiter dtype str,encoding utf 8 生成矩陣 vector np.array 5,10,23,45,2 一維 vector np.array 5,10,23,...