python - 如何在 Python 中使用 MATLAB 中的 unique(a, 'rows' )?

标签 python matlab numpy

我正在将一些东西从 MATLAB 翻译成 Python 语言。

NumPy 中有这个命令,unique(a) .但是由于 MATLAB 程序也运行“行”命令,所以它给出了一些不同的东西。

Python 中是否有类似的命令,或者我是否应该制作一些执行相同操作的算法?

最佳答案

假设您的二维数组以通常的 C 顺序存储(也就是说,每一行都算作主数组中的一个数组或列表;换句话说,行优先顺序),或者您事先转置数组,你可以做类似...

>>> import numpy as np
>>> a = np.array([[1, 2, 3], [2, 3, 4], [1, 2, 3], [3, 4, 5]])
>>> a
array([[1, 2, 3],
       [2, 3, 4],
       [1, 2, 3],
       [3, 4, 5]])
>>> np.array([np.array(x) for x in set(tuple(x) for x in a)]) # or "list(x) for x in set[...]"
array([[3, 4, 5],
       [2, 3, 4],
       [1, 2, 3]])

当然,如果您需要按原始顺序排列的唯一行,这实际上不起作用。


顺便说一下,要模拟类似 unique(a, 'columns') 的东西,您只需转置原始数组,执行上面显示的步骤,然后转置回去。

关于python - 如何在 Python 中使用 MATLAB 中的 unique(a, 'rows' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6776821/

相关文章:

传递给父级的 Matlab 事件

python - 获取默认的 x 刻度标签文本用作索引,以使用其他文本更新刻度标签

c++ - mexPrintf 消息未显示在 matlab 命令窗口中

python - 将jpeg文件直接写入lmdb

matlab - matlab中如何改变绘制线的颜色

python - 将新列添加到 Numpy 数组的最佳方法

c# - 如何部署通过 IronPython 调用 numpy 的 C# 应用程序

python - Numpy 均值结构化数组

python - 被告知我的代码有太多 "if"语句

c# - 在 C# 中使用 .PYD 文件?