簡體   English   中英

將操作應用於python中二維numpy數組的每個向量

[英]Applying an operation to each vector from 2d numpy arrays in python

我需要它用於二維數組,但也會對更高維度感興趣。 如果我有兩個 numpy 2DArrays 讓我們說 A 和 B 以及一個函數 f 它接受 2 個向量並輸出一個標量。 性能很重要,並且 numpy 數組操作非常快,所以我如何獲得矩陣:

(f(a1,b1),f(a1, b2)...)
(f(a2,b1), f(a2,b2)...)
(...                  )

a(i) 和 b(i) 是一維數組/向量

通過應用類似 f(A,B) 的東西而不使用任何循環。

使用某些方法我可以使用 axis=1 但我如何定義我自己的函數或者有其他方法?

最簡單、最有效的解決方案是使用 for 循環。 np.vectorize 在這里對您沒有幫助,因為它將標量傳遞給函數。

假設您的數組有兩列:

for a,b in zip(A,B):
    print(f(a[0],b[0]))
    print(f(a[1],b[1]))

將打印您想要返回的 f 值。

暫無
暫無

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

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