python – vectorize numpy独特的子阵列
发布时间:2020-09-05 03:42:52 所属栏目:Python 来源:互联网
导读:我有一个形状(N,20,20)的numpy数组数据,N是一些非常大的数字.我想获得每个20x20子阵列中唯一值的数量.循环将是:values = [] for i in data: values.append(len(np.unique(i))) 我怎么能对这个循环进行矢量化?速度是一个问题.如果我尝试np.unique(数据),我得
我有一个形状(N,20,20)的numpy数组数据,N是一些非常大的数字.
我怎么能对这个循环进行矢量化?速度是一个问题. 如果我尝试np.unique(数据),我得到整个数据数组的唯一值,而不是单独的20×20块,所以这不是我需要的. 最佳答案 首先,您可以使用data.reshape(N,-1),因为您有兴趣对最后2个维度进行排序.获取每行唯一值的简单方法是将每一行转储到一个集合中并让它进行排序:
但这是一个迭代,可能是一个快速的迭代. “向量化”的一个问题是每行中唯一值的集合或列表的长度不同. “矢量化”时,“具有不同长度的行”是一个红色标记.您不再具有“矩形”数据布局,使大多数矢量化成为可能. 你可以排序每一行:
但是,如何在不迭代的情况下识别每行中的唯一值?计算非零差异的数量可能只是诀窍:
我打算添加一个关于浮点数的警告,但是如果np.unique对你的数据起作用,我的方法应该也能正常工作.
这是一个迭代解决方案,明显比我的len(set(i))版本快,并且与diff … sort竞争. 在[585]中:data.shape (编辑:十堰站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- gettext – Flask-Babel如何在Jinja模板文件中使用翻译
- python – 如何在没有带有pandas的“未命名”行的情况下读取
- Python’的奇怪行为是’运算符,如果与’in’结合使用[复制]
- pythonic方式将变量转换为列表
- python – 如何编写依赖于子关系中的列的混合属性?
- ValueError:参数必须是密集张量–Python和TensorFlow
- django – Travis:“创建测试数据库时出错:创建数据库的权
- 在Python 2.7.3中为numpy数组指定字段名称
- 使用Mercurial或Git分支处理数据库分支的标准或最佳方法是什
- python芹菜max-tasks-per-child-setting默认值