我正在嘗試將兩個或多個不同的陣列與一個常數因子相乘。例如,我有兩個以 bar 為單位的壓力測量陣列,并希望通過將每一行乘以因子 1e5 將每個陣列分別轉換為 Pa。回傳也應該是兩個陣列。我想過一個 for 回圈,但我是 Python 新手,我不知道如何處理它。
# for example
import numpy as np
p1=np.array([2,3,4]) # pressure measurement p1 in bar
p2=np.array([8,7,6]) # pressure measurement p2 in bar
# loop to multiply p1 and p2 seperately with 1e5
# return
# p1[2e5,3e5,4e5]
# p2[8e5,7e5,6e5]
有人可以幫忙嗎?
非常感謝你!
喬納斯
uj5u.com熱心網友回復:
NumPy 陣列支持標量乘法(這是廣播的一種特殊情況)。只需將陣列直接乘以常數即可:p1 *= 1e5
如果您得到 a UFuncTypeError,則表示您的陣列資料型別與常量乘數的型別不匹配。例如,默認情況下a = np.array([1,2,3])將創建一個具有資料型別的陣列int32,而 NumPy 強制轉換規則不允許它乘以浮點數。要解決此問題,您可以顯式指定資料型別:a = np.array([1,2,3], dtype=float)或者您可以將條目作為浮點數提供:a = np.array([1.0,2.0,3.0])
uj5u.com熱心網友回復:
用于numpy.multiply此
x = np.array([2,3,4])
y = np.multiply(x, 1e5)
print(y)
輸出:
[200000. 300000. 400000.]
x程序中沒有改變
uj5u.com熱心網友回復:
def multiply_two_arrays(a1, a2, factor):
return a1*factor, a2*factor
a1, a2 = multiply_two_arrays(p1, p2, 10)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/465610.html
