按索引删除numpy数组的元素

2024-10-01 00:32:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图按索引删除几行Numpy数组,但我不明白为什么会产生不同的值。它应该去掉三排。你知道吗

# The original array descritoresFaciais
[[ -9.30438712e-02   7.69939125e-02]   # index 0
[ -8.71469826e-02   9.11752135e-02]    # index 1    
[ -9.40909833e-02   1.10907182e-01]    # index 2
[ -1.45724729e-01   3.04837357e-02]    # index 3
[ -1.72051653e-01   5.80535792e-02]    # index 4
[ -1.44777581e-01   2.88028345e-02]]   # index 5

indexes = [0, 1, 2] # indexes I want to remove
x = np.delete(descritoresFaciais, indexes, axis=0)
print(x)

#Result of deleting
[[-0.14572473  0.01929282]
[-0.17205165  -0.00352619]
[-0.14477758   0.00853495]]

我也尝试了这个命令行,但是得到了相同的值:

x = np.delete(descritoresFaciais, np.s_[0:3], axis=0)

Tags: thetonumpyindexnp数组deletearray
1条回答
网友
1楼 · 发布于 2024-10-01 00:32:32

你的代码对我很管用..但是作为一种替代方法,请尝试将索引定义为np.数组他们自己:

indexes = np.array([0,1,2])
x = np.delete(descritoresFaciais, indexes, axis=0)

如果由于某种奇怪的原因它仍然不起作用..获取所有行和要删除的行之间的设置差异,并返回数组的其余部分:

indexes = np.array([0,1,2])
allrows = np.array(range(len(descritoresFaciais)))
x = d[np.setdiff1d(allrows,indexes)]

我得到的答案和你的方法和这两种方法是一样的,所以我的直觉告诉我当你定义数组时发生了一些奇怪的事情,或者在你试图修改它之前发生了一些变化

相关问题 更多 >