簡體   English   中英

廣播 N 維數組

[英]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

假設ba有更多的維度,但不一定是兩個。 我想擴展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.

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