gpt4 book ai didi

python - 切片广播对象?

转载 作者:太空宇宙 更新时间:2023-11-04 10:32:37 26 4
gpt4 key购买 nike

我有一个代表 3 维数组掩码的 2 维数组,可以这样广播。例如:

>>> mask.shape
(101, 100)
>>> cube.shape
(500, 101, 100)

创建像 mask 这样的可广播对象的最佳方法是什么? (这是一个数组)可以用与多维数据集相同的 View 进行索引,返回相同的掩码?即:

>>> cube[100,:,:]
<some image>
>>> mask[100,:,:]
<mask>

所以 mask[n,:,:]会返回 mask对于任何 n ,或者更好的是任何n可用于索引 cube .

重要的是,我想做这件事 mask内存更大(例如,通过执行 bigger_mask = np.ones([500,1,1])*self._mask[None,:,:] )

最佳答案

是这样的吗?

>>> from numpy.lib.stride_tricks import as_strided
>>> mask = np.random.randint(2, size=(101, 100)).astype(bool)
>>> mask_view = as_strided(mask, shape=(500,)+mask.shape,
... strides=(0,)+mask.strides)
>>> mask_view.shape
(500, 101, 100)
>>> np.array_equal(mask_view[0], mask_view[499])
True
>>> np.all(mask_view == 0)
False
>>> mask[:] = 0
>>> np.all(mask_view == 0)
True

关于python - 切片广播对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25462739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com