gpt4 book ai didi

python - Numpy 数组,每行删除一个任意元素

转载 作者:太空宇宙 更新时间:2023-11-03 17:52:43 25 4
gpt4 key购买 nike

我有一个 N*K 维 numpy 数组 X 并想要构造 N*(K-1) 维 numpy 数组 Y 通过删除第一行的元素 1、第二行的元素 3、第四行的元素 1 .... 第 N 行的元素 j。应删除的第 th 个元素的索引存储在 N*1 维向量t中。有没有简单的方法可以做到这一点?

最佳答案

您可以构建一个 bool 选择蒙版:

mask = np.ones_like(X, dtype='bool')
mask[np.arange(X.shape[0]), idx] = 0

这将使定义 Yt 变得容易:

import numpy as np
N, K = 3, 4
X = np.arange(N*K).reshape(N,K)
# idx indicates which element you wish to remove from each row
idx = np.arange(N)

mask = np.ones_like(X, dtype='bool')
mask[np.arange(X.shape[0]), idx] = 0

Y = X[mask].reshape(N, K-1)
t = X[~mask]

产量

In [17]: X
Out[17]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])

In [15]: Y
Out[15]:
array([[ 1, 2, 3],
[ 4, 6, 7],
[ 8, 9, 11]])

In [16]: t
Out[16]: array([ 0, 5, 10])

关于python - Numpy 数组,每行删除一个任意元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28913704/

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