切片并用1d列索引数组填充2d数组

Ben

首先,这是我想做的一维模拟。

假设我有一个0s的1d数组,并且我想将索引2以后的每个0替换为1。我可以这样做,如下所示:

import numpy as np

x = np.array([0,0,0,0])
i = 2
x[i:] = 1
print(x)  # [0 0 1 1]

现在,我试图找出此操作的2d版本。首先,我有一个5x4的0数组,例如

foo = np.zeros(shape = (5,4))

[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]

和相应的5元素的列索引数组,例如

fill_locs = np.array([0, 3, 1, 1, 2])

对于foo的每一行,我想i:用1s填充列,其中i是给出的索引fill_locsfoo[fill_locs.reshape(-1, 1):] = 1感觉不错,但是不起作用。

我想要的输出应该像

expected_result = np.array([
    [1, 1, 1, 1],
    [0, 0, 0, 1],
    [0, 1, 1, 1],
    [0, 1, 1, 1],
    [0, 0, 1, 1],
])
用户名

您不需要切片,也不需要创建原始数组。您可以通过广播比较完成所有这些操作。


a = np.array([0, 3, 1, 1, 2])
n = 4

(a[:, None] <= np.arange(n)).view('i1')

array([[1, 1, 1, 1],
       [0, 0, 0, 1],
       [0, 1, 1, 1],
       [0, 1, 1, 1],
       [0, 0, 1, 1]], dtype=int8)

或使用 less_equal.outer

np.less_equal.outer(a, np.arange(n)).view('i1')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

过滤2D数组并将其切片为1D

来自分类Dev

如何基于包含初始索引和最终索引的2个1D数组对2D numpy数组进行切片

来自分类Dev

使用range / arange函数作为参数对2d numpy数组进行索引/切片

来自分类Dev

Numpy用索引数组对多个2D范围进行切片

来自分类Dev

Python 2D数组列表索引必须是整数或切片,而不是元组

来自分类Dev

在1d数组中填充2d数组

来自分类Dev

根据条件切片2D numpy数组

来自分类Dev

在PHP中切片2D数组

来自分类Dev

将 2d 数组索引为 1d

来自分类Dev

两个数组的对应2d切片的相乘和数组切片的求逆

来自分类Dev

两个数组的对应2d切片的相乘和数组切片的求逆

来自分类Dev

从python中的3D数组切片创建新的2D数组?

来自分类Dev

在numpy中获取3D数组的2D切片的平均值

来自分类Dev

基于2D数组的3D numpy切片的平均值

来自分类Dev

如何使用1d数组中的值填充2d数组?

来自分类Dev

Java用1D数组填充2D数组

来自分类Dev

尝试填充2d数组,但它仍然是1d数组C ++

来自分类Dev

如何切片和扩展2D numpy数组?

来自分类Dev

如何获取numpy数组中最大的2d切片?

来自分类Dev

反转具有多个切片对象的2D NumPy数组

来自分类Dev

Python中的2D数组切片和替换vlaues

来自分类Dev

在PostgreSQL中切片2d数组时行为不一致

来自分类Dev

tf.gather_nd从1d索引数组中获取2d数组的值

来自分类Dev

使用2D数组中的值索引1D数组

来自分类Dev

tf.gather_nd从1d索引数组中获取2d数组的值

来自分类Dev

numpy:将索引的2D数组转换为1D数组以进行交集计算

来自分类Dev

numpy切片功能:从数组形状为(X,2)的数组中动态创建切片索引np.r_ [a:b,c:d,...]

来自分类Dev

2D阵列切片

来自分类Dev

2D切片混乱

Related 相关文章

热门标签

归档