iT邦幫忙

2021 iThome 鐵人賽

DAY 28
1
Software Development

宇宙 69 大魔王的 python 世界系列 第 28

【Day 28】NumPy (5):sum(), power(), transpose()

前言

今天要繼續來介紹一下用於數學運算的函式,NumPy 太多用途了,真的非常需要好好的了解 NumPy 的各種語法。

今天會介紹 sum()power()transpose()

NumPy

np.sum()

把輸入的元素相加起來的函式,完整語法如下:

np.sum(arr, axis, dtype, out)

  • arr:輸入的 array
  • axis:是否要根據 相加
  • dtype:資料型態
  • out:如果有 out,會將結果儲存在 out 內,這個 array 的大小必須和輸出的一樣
import numpy as np
array1 = np.array([1, 2, 3, 4, 5.2])

x = np.sum(array1, dtype = np.float32)
print(x)
# 輸出
# 15.2

y = np.sum(array1, dtype = np.uint8)
print(y)
# 輸出
# 15
  • axis:底下用圖片來示意 axis = 0axis = 1 的方向,他會沿著指定方向去相加出結果,不會全部加成一個常數而已。

    # axis = 0
    array1 = np.array([[1, 2, 3, 4],
                       [5, 6, 7, 8],
                       [9, 10, 11, 12]])
    
    x = np.sum(array1, axis = 0)
    
    print(x)
    # 輸出
    # [15 18 21 24]
    

    # axis = 0
    array1 = np.array([[1, 2, 3, 4],
                       [5, 6, 7, 8],
                       [9, 10, 11, 12]])
    
    x = np.sum(array1, axis = 1)
    
    print(x)
    # 輸出
    # [10 26 42]
    

np.power()

先來看一下語法:np.power(x1, x2)

把輸入的 arr 求 n 次方,x1 是 array,x2 可以是常數n 也可以是另一個 array,但是 x2 的行或列至少要有一個跟 x1 一樣

x1 內的每個元素都 3 次方。

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

z = np.power(x1, 3)

print(z)
# 輸出
# [ 1  8 27 64]

x1 內的每個元素對 x2 的元素取次方。

x1 = np.array([1, 2, 3, 4])
x2 = np.array([1, 2, 3, 4])
z = np.power(x1, x2)

print(z)
# 輸出
# [  1   4  27 256]

x1 內的每個元素對 x2 的元素取次方,並且 x2 有兩個 row 所以輸出也是兩個 row。

x1 = np.array([1, 2, 3, 4])
x2 = np.array([[1, 2, 3, 4],
               [6, 6, 6, 6]])
z = np.power(x1, x2)

print(z)
# 輸出
# [[   1    4   27  256]
#  [   1   64  729 4096]]
x1 = np.array([[4],
               [2]])
x2 = np.array([[1, 2, 3],
              [4, 5, 6]])
z = np.power(x1, x2)

print(z)
# 輸出
# [[ 4 16 64]
#  [16 32 64]]

np.transpose()

取得輸入 array 的轉置矩陣。

array1 = np.array([[1, 2, 3, 4],
                   [6, 6, 6, 6]])
x = np.transpose(array1)

print(x)
# 輸出
# [[1 6]
#  [2 6]
#  [3 6]
#  [4 6]]

結語

NumPy 的介紹就先介紹到這邊了,祝大家在學習的路上都能學到所需的知識。

待續...


上一篇
【Day 27】NumPy (4):np.sqrt(), np.square()
下一篇
【Day 29】Matplotlib 介紹
系列文
宇宙 69 大魔王的 python 世界30

尚未有邦友留言

立即登入留言