簡體   English   中英

Python:在numpy數組上按元素明智的操作構建矩陣

[英]Python: Building Matrix by element wise operations on numpy arrays

給定兩個numpy數組(arr1和arr2),我想構建一個矩陣,用於存儲arr1中每個元素與arr2中每個元素的差。 即:

my_matrix = [arr1-i for i in arr2]

但是,隨着陣列變大,這種情況開始變慢。 我試圖像這樣利用numpy的良好性能:

arr1_mtx = np.array([arr1]*len(arr2))
arr2_mtx = np.array([arr1]*len(arr2)).T
my_matrix = arr1_mtx-arr2_mtx

我對Python還是很陌生,所以我不確定這是否是構建該矩陣的最pythonic和最有效的方法。 有小費嗎?

提前致謝!

您可以將其中一個數組整形為2d數組,然后使用numpy 廣播

arr1[:,None] - arr2

arr1 = np.array([1,2])
arr2 = np.array([3,4,5])
​
arr1[:,None] - arr2
#array([[-2, -3, -4],
#       [-1, -2, -3]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM