[英]Broadcast an array by N dimensions
我有兩個 arrays,
import numpy as np
a = np.ones(100)
b = np.ones(1000).reshape(100, 1, 10)
dims_difference = b.ndim - a.ndim
假設b
比a
有更多的維度,但不一定是兩個。 我想擴展a
以確保操作a + b
按預期工作(在第一個軸上)。 當我知道它是兩個時,我可以通過硬編碼來做到這一點:
a = a[:, None, None]
當需要在 和 中添加的維數包含在dims_difference
中時,我該如何以一般方式執行此操作?
一個 - 不那么優雅 - 基於@hpaulj 評論的解決方案如下:
for i in np.arange(dims_difference)+1:
a = np.expand_dims(a, i)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.