我有一個 10x10 的矩陣,我想用向量的元素劃分矩陣的每一行。
例如:假設我有一個 3x3 矩陣
1 1 1
2 2 2
3 3 3
和一個向量 [1, 2, 3]
然后這是我想做的操作:
1/1 1/2 1/3
2/1 2/1 2/3
3/1 3/2 3/3
即,將行的元素除以向量的元素(python 串列)
我可以使用 for 回圈來做到這一點。但是,有沒有更好的方法在 python 中執行此操作?
uj5u.com熱心網友回復:
您應該研究 numpy 中的廣播。對于您的示例,這是解決方案:
a = np.array([[1, 1, 1], [2, 2, 2], [3, 3, 3]])
b = np.array([1, 2, 3]).reshape(1, 3)
c = a / b
print(c)
>>> [[1. 0.5 0.33333333]
[2. 1. 0.66666667]
[3. 1.5 1. ]]
uj5u.com熱心網友回復:
第一個源陣列應創建為Numpy陣列:
a = np.array([
[ 1, 1, 1 ],
[ 2, 2, 2 ],
[ 3, 3, 3 ]])
您不需要重塑除數陣列(它可以是一維陣列,如源資料示例中所示):
v = np.array([1, 2, 3])
只需將它們分開:
result = a / v
結果是:
array([[1. , 0.5 , 0.33333333],
[2. , 1. , 0.66666667],
[3. , 1.5 , 1. ]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/380558.html
標籤:Python 数组 麻木的 numpy-ndarray
下一篇:如何處理NumPy中的大整數?
