python - 删除 Numpy 中重新排列的数组

标签 python arrays numpy

我有一个numpy乘积生成器(使用meshgrid),它可以查找两个数组的乘积(类似于itertools.product)。问题是它生成包含相同元素但重新排列的数组(因此 numpy.unique 不会过滤它们)。

例如,如果我有一个像这样的数组:

[[0, 0]
 [1, 0]
 [0, 1]
 [1, 1]]

我需要这样的结果:

[[0, 0]
 [1, 0]
 [1, 1]]

因为 [1, 0][0, 1] 对于我的目的来说是相同的。

最佳答案

如果您有 numpy >= 1.13.0,您可以在先前排序的数组上使用 np.unique:

>>> a = np.array([[0, 0], [1, 0], [0, 1], [1, 1]])
>>> a
[[0 0]
 [1 0]
 [0 1]
 [1 1]]
>>> b = np.unique(np.sort(a, axis=1), axis=0)
>>> b
[[0 0]
 [0 1]
 [1 1]]

关于python - 删除 Numpy 中重新排列的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45132602/

相关文章:

python - 理解 numpy 的 dstack 函数

python - BigQuery 插入作业而不是流式处理

python - 操作系统错误 : [E050] Can't find model 'en'

python - 通过掩码选择 numpy 数组的元素并保留原始尺寸

arrays - MATLAB 矩阵元素明智乘法优化

php - 如何从数据库构建 "child-parent"树/嵌套数组?

python - paramiko ssh.connect - 要发送什么参数?

c - 在 C/C++ 中传递和修改多维数组

python - 与 numpy 不同,带有 NaN 的 Pandas 系列 np.max 不会将 NaN 显示为最大值

python - 如何使用开始和结束索引对 numpy 行进行切片