首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除二维NumPy数组中的特定数组?

如何删除二维NumPy数组中的特定数组?
EN

Stack Overflow用户
提问于 2022-02-27 16:10:32
回答 3查看 105关注 0票数 1

让二维数组如下所示:

代码语言:javascript
复制
In [1]: a = [[1, 2], [3, 4], [5, 6], [1, 2], [7, 8]]
        a = np.array(a)
        a, type(a)
Out [1]: (array([[1, 2],
                 [3, 4],
                 [5, 6],
                 [1, 2],
                 [7, 8]]),
         numpy.ndarray)

我曾尝试过这样做:

代码语言:javascript
复制
In [2]: a = a[a != [1, 2])
        a = np.reshape(a, (int(a.size/2), 2) # I have to do this since on the first line in In [2] change the dimension to 1 [3, 4, 5, 6, 7, 8] (the initial array is 2-dimensional array)
        a
Out[2]: array([[3, 4],
               [5, 6],
               [7, 8]])

我的问题是,在NumPy中有任何函数可以直接做到这一点吗?

更新问题

下面是我一直在研究的半完整源代码

代码语言:javascript
复制
from sklearn import datasets
data = datasets.load_iris()
df = pd.DataFrame(data.data, columns=data.feature_names)
df['Target'] = pd.DataFrame(data.target)

bucket = df[df['Target'] == 0]
bucket = bucket.iloc[:,[0,1]].values
lp, rp = leftestRightest(bucket)
bucket = np.array([x for x in bucket if list(x) != lp])
bucket = np.array([x for x in bucket if list(x) != rp])

备注:

leftestRightest(arg)是一个函数,它返回大小为2的二维NumPy数组(即lprp)。对于实例,lp = [1, 3]rp = [2, 4]和参数是二维NumPy数组。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-02-27 16:20:30

应该有一种更微妙的方法,但在这里,我想出的是:

代码语言:javascript
复制
np.array([x for x in a if list(x) != [1,2]])

输出

代码语言:javascript
复制
[[3, 4], [5, 6], [7, 8]]

请注意,我不建议使用大型数组中的列表理解,因为这将非常耗时。

票数 1
EN

Stack Overflow用户

发布于 2022-02-27 16:27:08

你的方法是正确的,但是面具必须是一维的:

代码语言:javascript
复制
a[(a != [1, 2]).all(-1)]

输出:

代码语言:javascript
复制
array([[3, 4],
       [5, 6],
       [7, 8]])

或者,您可以收集元素并使用-1推断维度:

代码语言:javascript
复制
a[a != [1, 2]].reshape(-1, 2)
票数 0
EN

Stack Overflow用户

发布于 2022-02-27 16:30:40

布尔条件创建一个True/False的2D数组。您必须在列中应用and操作,以确保匹配不是部分匹配。考虑上面数组中的第5行2,您编写的脚本将添加5,而忽略得到的1D数组中的2。可以这样做:

a[np.all(a != [1, 2],axis=1)]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71286342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档