07 numpy 算數運算和廣播

2021-09-25 05:45:19 字數 3487 閱讀 4637

a.加減乘除

import numpy as np

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

y = np.array([5.5, 6.5, 7.5, 8.5]).reshape([2, 2])

print('x = {}\n'.format(x))

print('y = {}\n'.format(y))

print('x + y = {}\n'.format(x + y))

print('add(x,y) = {}\n'.format(np.add(x, y)))

print('x - y = {}\n'.format(x - y))

print('subtract(x,y) = {}\n'.format(np.subtract(x, y)))

print('x * y = {}\n'.format(x * y))

print('multiply(x,y) = {}\n'.format(np.multiply(x, y)))

print('x / y = {}\n'.format(x / y))

print('divide(x,y) = {}\n'.format(np.divide(x, y)))

執行結果:

x = [[1 2]

[3 4]]

y = [[5.5 6.5]

[7.5 8.5]]

x + y = [[ 6.5 8.5]

[10.5 12.5]]

add(x,y) = [[ 6.5 8.5]

[10.5 12.5]]

x - y = [[-4.5 -4.5]

[-4.5 -4.5]]

subtract(x,y) = [[-4.5 -4.5]

[-4.5 -4.5]]

x * y = [[ 5.5 13. ]

[22.5 34. ]]

multiply(x,y) = [[ 5.5 13. ]

[22.5 34. ]]

x / y = [[0.18181818 0.30769231]

[0.4 0.47058824]]

divide(x,y) = [[0.18181818 0.30769231]

[0.4 0.47058824]]

b.統計學函式

import numpy as np

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

print()

print('x = \n', x)

print()

print('平均值:', x.mean())

print('列的平均值:', x.mean(axis=0))

print('行的平均值:', x.mean(axis=1))

print()

print('和:', x.sum())

print('列的和:', x.sum(axis=0))

print('行的和', x.sum(axis=1))

print()

print('標準差:', x.std())

print('列的標準差:', x.std(axis=0))

print('行的標準差:', x.std(axis=1))

print()

print('中值:', np.median(x))

print('列的中值:', np.median(x,axis=0))

print('行的中值:', np.median(x,axis=1))

print()

print('最大值:', x.max())

print('行的最大值:', x.max(axis=0))

print('列的最大值:', x.max(axis=1))

print()

print('最小值:', x.min())

print('列的最小值:', x.min(axis=0))

print('行的最小值:', x.min(axis=1))

執行結果:

x = 

[[1 2]

[3 4]]

平均值: 2.5

列的平均值: [2. 3.]

行的平均值: [1.5 3.5]

和: 10

列的和: [4 6]

行的和 [3 7]

標準差: 1.118033988749895

列的標準差: [1. 1.]

行的標準差: [0.5 0.5]

中值: 2.5

列的中值: [2. 3.]

行的中值: [1.5 3.5]

最大值: 4

行的最大值: [3 4]

列的最大值: [2 4]

最小值: 1

列的最小值: [1 2]

行的最小值: [1 3]

a.每個元素廣播 * 3

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

print()

print('x = \n', x)

print()

#x中的每個元素 * 3

print('3 * x = \n', 3 * x)

執行結果:

x = 

[[1 2]

[3 4]]

3 * x =

[[ 3 6]

[ 9 12]]

b.可以對倆個形狀不同ndarray做廣播,但是對形狀有限制

import numpy as np

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

y = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

z = np.array([1, 2, 3]).reshape(3, 1)

print('x = \n', x)

print('y = \n', y)

print('z = \n', z)

print('x + y = \n', x + y)

print('z + y = \n', z + y)

執行結果:

x = 

[1 2 3]

y =

[[1 2 3]

[4 5 6]

[7 8 9]]

z =

[[1]

[2][3]]

x + y =

[[ 2 4 6]

[ 5 7 9]

[ 8 10 12]]

z + y =

[[ 2 3 4]

[ 6 7 8]

[10 11 12]]

Python型別和運算 數字

在python中,數字並不是乙個真正的物件型別,而是一組相似型別的分類。不僅包括通常的數字型別 整數和浮點數 黑包括數字表示式,以及高階的數字程式設計。基本數字常量 數字 常量 1234,24 整數 無窮大小 1.23,3.14e10 浮點數 0177,0x9ff,0b1010 python2.6中...

C 算數運算子「 和 」

大家對於算數運算子應該不會陌生吧,而且加加和減減應該也知道些,但是,如果我突然問起你來了,前加加,後加加,前減減,後減減,你能快速的給我講清楚嗎?如果你不能立刻反應過來,那麼就好好看看這篇部落格,會給你講的很清楚。這個是很基礎的概念。前加加和後加加,最終的結果都是給這個變數加一 區別 前加加是獻給這...

NumPy學習筆記07 切片和索引

ndarray物件的內容可以通過索引或切片來訪問和修改,與 python 中 list 的切片操作一樣。ndarray 陣列可以基於 0 n 的下標進行索引,切片物件可以通過內建的 slice 函式,並設定 start,stop 及 step 引數進行,從原陣列中切割出乙個新陣列。import nu...