python Numpy基礎(多維陣列物件)

2021-10-25 19:50:40 字數 3998 閱讀 4365

生成隨機數組

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,...