Numpy的小總結

2022-09-05 04:00:16 字數 3113 閱讀 3350

numpy是python的乙個科學計算庫,提供矩陣運算的功能。

import numpy as np #一般都是用numpy的別名來進行操作

np.array((1.2,2,3,4), dtype=np.int32)

這裡是強制定義了np裡面的矩陣資料型別,是讓其為int32位,如果其中有小數的,都會轉換成整數。

arr1 = np.array([1,2,3,4,5,6,6,6])

print(arr1.reshape(2,4))

reshape完之後,就變成矩陣了

arr1.shape()則顯示矩陣的情況,就是是幾維矩陣,矩陣的長度如何。

arr1.dtype顯示arr1矩陣的資料的型別,這裡上邊定義的是int型別的

import numpy as

npprint(np.array((

1.2,2,3,4.1), dtype=np.int32))

arr1 = np.array([1,2,3,4,5,6,6,6

])print(arr1.reshape(

2,4))

print(arr1.dtype)

#起始值為第乙個引數,終點值為第二個引數,然後第三個引數是把這個區間的數,分為多少,這裡的輸出結果是從1到10

矩陣之間是可以運算的,但是要注意的是什麼?就是矩陣的長度得是對應的。比如二維對二維,並且相對應運算行的長度得相同

import numpy as

npa = np.array([[1,2,3],[2,3,4

]])b = np.array([[2,3,4],[2,3,4

]])print(a -b)

"""結果輸出:[[-1 -1 -1]

[ 000]]"""

行乘列得出結果,看輸出結果中的9可以看出,是a的第一行乘以b的第一列。

import

numpy as np

a = np.array([[1,2,3],[2,3,4],[1,1,1]])

b = np.array([[2,3,4],[2,3,4],[1,1,1]])

print

(np.dot(a,b))

"""輸出結果[[ 9 12 15]

[14 19 24]

[ 5 7 9]]

"""

np.floor(矩陣)向下取整,就是傳進來的矩陣,如果是3.5,就會變成3這樣子

import

numpy as np

a = np.array([[1,2,3],[2,3,4],[1,1,1]])

print

(a.r**el())

"""輸出結果:[1 2 3 2 3 4 1 1 1]

"""

vstack和hstack,我發現只能憑藉相同大小的,就是如果矩陣不等長的話則按照斷的來拼接。像矩陣a的第二行,有五個數,但是最終只拼接了三個

import

numpy as np

a = np.array([[1,2,3],[2,3,4,5,6],[1,1,1]])

a = np.array([[1,2,3],[2,3,4],[1,1,1]])

print

(np.hstack((a,b)))

print

(np.vstack((a,b)))

"""輸出結果:[[1 2 3 2 3 4]

[2 3 4 2 3 4]

[1 1 1 1 1 1]]

[[1 2 3]

[2 3 4]

[1 1 1]

[2 3 4]

[2 3 4]

[1 1 1]]

"""

按照行來切,這裡在第三行和第四行切了,因此,產生了三個矩陣

a = np.floor(10*np.random.random((2,12))) #

按行切print

(a)print(np.hsplit(a,(3,4)))

"""結果:[[ 0. 2. 0. 3. 3. 1. 5. 9. 1. 5. 5. 9.]

[ 5. 5. 1. 7. 3. 0. 8. 3. 4. 7. 0. 7.]]

[array([[ 0., 2., 0.],

[ 5., 5., 1.]]), array([[ 3.],

[ 7.]]), array([[ 3., 1., 5., 9., 1., 5., 5., 9.],

[ 3., 0., 8., 3., 4., 7., 0., 7.]])]

"""

按列來分,想切幾刀就切幾刀,切多少下,只要沒超過它的列數,就可以切。

import

numpy as np

a = np.floor(10*np.random.random((12,2)))

print

(a)print(np.vsplit(a,3))

"""執行結果[[ 7. 5.]

[ 4. 9.]

[ 9. 9.]

[ 9. 7.]

[ 8. 6.]

[ 4. 4.]

[ 6. 7.]

[ 3. 2.]

[ 8. 1.]

[ 4. 2.]

[ 2. 5.]

[ 0. 0.]]

[array([[ 7., 5.],

[ 4., 9.],

[ 9., 9.],

[ 9., 7.]]), array([[ 8., 6.],

[ 4., 4.],

[ 6., 7.],

[ 3., 2.]]), array([[ 8., 1.],

[ 4., 2.],

[ 2., 5.],

[ 0., 0.]])]

"""

至於訪問切出來的矩陣,很簡單,就是參考陣列,既然切成了多個矩陣,那就是按照不同的下標來訪問咯,比如上邊的結果想拿到第乙個陣列的第乙個數字,則只要賦值了之後,用

賦值的變數[0][0][0]就可以訪問到了,注意陣列巢狀的情況。

numpy用法總結

python的乙個開源的數值計算擴充套件。這種工具可用來儲存和處理大型矩陣,比python自身的巢狀列表 nested list structure 結構要高效的多 該結構也可以用來表示矩陣 matrix 功能 返回數字或陣列的絕對值。若輸入為陣列,則將陣列各元素取絕對值,然後返回取絕對值後的陣列 ...

numpy方法總結

numpy是乙個用python實現的科學計算的擴充套件程式庫,包括 numpy陣列間的基本運算是一對一的,基本就是加減乘除。陣列運算要求兩個資料的形狀相同,當形狀不同的時候,就會自動觸發廣播機制。陣列廣播 當兩個形狀不一樣的陣列進行相加,自動觸發廣播機制。下邊看幾個廣播計算的示意圖 當某乙個陣列的維...

numpy學習總結

匯入 import numpy as np 生成矩陣 array np.array 1,2,3 4,5,6 矩陣維度 array.ndim 矩陣形狀 array.shape 矩陣大小 array.size 矩陣元素型別 array.dtype a np.array 1,2,3 dtype np.in...