numpy的基礎運算2 老魚學numpy

2022-02-10 05:44:04 字數 3136 閱讀 3025

numpy的基礎運算中還有很多運算,我們這裡再記錄一些。

前面一篇博文中我們講述過如何獲得陣列中的最小值,這裡我們獲得最小/大值的索引值,也就是這個最小/大值在整個陣列中位於第幾位。

import numpy as np

a = np.array([[10, 30, 15],

[20, 5, 25]])

print("a=")

print(a)

print("最小值索引:", a.argmin())

print("最大值索引:", np.argmax(a))

輸出為:

a=

[[10 30 15]

[20 5 25]]

最小值索引: 4

最大值索引: 1

這就意味著這裡最小值的索引號是4,也就是陣列中第4位的值,也就是數值5。

import numpy as np

a = np.array([[10, 30, 15],

[20, 5, 25]])

print("a=")

print(a)

print("平均值:", a.mean())

輸出為:

a=

[[10 30 15]

[20 5 25]]

平均值: 17.5

我們也可以通過axis引數來指定到底是在行上的平均值還是列上的平均值。

例如,我們使用axis=1來指示行上的平均值:

import numpy as np

a = np.array([[10, 30, 15],

[20, 5, 25]])

print("a=")

print(a)

print("行平均值:", a.mean(axis=1))

輸出為:

a=

[[10 30 15]

[20 5 25]]

行平均值: [ 18.33333333 16.66666667]

import numpy as np

a = np.array([10, 30, 15, 20, 5, 25])

print("a=")

print(a)

print("累積求和:", a.cumsum())

輸出:

a=

[10 30 15 20 5 25]

累積求和: [ 10 40 55 75 80 105]

import numpy as np

a = np.array([4, 6, 9, 1, 9])

print("a=")

print(a)

print("累差:", np.diff(a))

輸出:

a=

[4 6 9 1 9]

累差: [ 2 3 -8 8]

輸出結果就是後乙個元素的值減去前乙個元素的值,最終元素的個數少1。

import numpy as np

a = np.array([[4, 0, 9],

[1, 0, 8]])

print("a=")

print(a)

print("找出非零的數:", np.nonzero(a))

輸出為:

a=

[[4 0 9]

[1 0 8]]

找出非零的數: (array([0, 0, 1, 1], dtype=int64), array([0, 2, 0, 2], dtype=int64))

在上述的輸出結果中表示的非0數是相應的索引位置,因為我們是二維陣列,所以結果有兩段,第一段表示某一維中的索引號,另一段表示的是另一維的索引號。

具體解讀為其中的非零值位於:(0, 0), (0, 2), (1, 0), (1, 2)

也就是其中數字4、9、1、8所在的索引位置。

import numpy as np

a = np.array([[4, 0, 9],

[1, 0, 8]])

print("a=")

print(a)

print("排序結果:")

print(np.sort(a))

輸出:

a=

[[4 0 9]

[1 0 8]]

排序結果:

[[0 4 9]

[0 1 8]]

轉置矩陣就是把行變成列,列變成行。例如:

import numpy as np

a = np.array([[4, 0, 9],

[1, 0, 8]])

print("a=")

print(a)

print("轉置矩陣:")

print(np.transpose(a))

輸出為:

a=

[[4 0 9]

[1 0 8]]

轉置矩陣:

[[4 1]

[0 0]

[9 8]]

也可以用簡寫的方式:a.t,這個讀者自己去試試吧。

把矩陣中的數改變成只屬於某個資料範圍內的數,例如:

import numpy as np

a = np.array([[4, 6, 9],

[1, 7, 8]])

print("a=")

print(a)

print("np.clip:")

print(np.clip(a, 3, 7))

輸出為:

a=

[[4 6 9]

[1 7 8]]

np.clip:

[[4 6 7]

[3 7 7]]

這樣就把其中的元素都設定成了3到7的範圍之內的數,比3小的數被修改成了3,比7大的數被修改成了7。

numpy的索引 老魚學numpy

import numpy as np a np.arange 3,15 reshape 3,4 print a print a print 第2行的資料 a 2 print 第2行第3列的資料 a 2 3 輸出為 a 3 4 5 6 7 8 9 10 11 12 13 14 第2行的資料 11 12...

numpy建立array 老魚學numpy

import numpy as np 陣列 a 1,2,3 4,5,6 print a a 矩陣 b np.array a print b b 執行後輸出為 a 1,2,3 4,5,6 b 1 2 3 4 5 6 我們可以看到python中的陣列和numpy中的陣列在螢幕上輸出的一些細微的差異 nu...

numpy array分割 老魚學numpy

有合併,就有分割。本節主要講述如何通過numpy對陣列進行橫向 縱向分割。首先建立乙個6行4列的陣列,然後我們對此陣列按照橫向進行切割,分成3塊,這樣每塊應該有2行,見例子 import numpy as np a np.arange 24 reshape 6,4 print a print a p...