首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python:如何根据2dim内容将2dim矩阵转换为1dim

python:如何根据2dim内容将2dim矩阵转换为1dim
EN

Stack Overflow用户
提问于 2019-02-25 16:13:41
回答 1查看 47关注 0票数 0

我有一个2dim的numpy数组,里面的内容就像是(-1,0,1)(0,1,2,3,4)的组合格式

现在我想将不同的组合分配到一个1dim矩阵中。例如,[-1,0] transfer to 1 [-1,1] transfer to 2,最终结果将是1-15个1-dim矩阵。

由于我的数据量很大,效率低的for循环是不合适的。所以我想用np.where来实现这个功能。

假设二维数据表示为a,形状为(100,2)

代码语言:javascript
复制
import itertools
import numpy as np

dic =  set(itertools.product([-1, 0, 1], [0, 1, 2, 3, 4]))

for key,value in enumerate():
    a[np.where(a==[-1,0])[0]]=key

但是where的输出将在一次判别中匹配两次,并且赋值将覆盖前端数据。结果仍然是带有封面数据的(100,0)

那么我怎样才能实现我的想法呢?我的意思是计算速度很快,计算量很小。或者有其他方法来解决这个问题?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-02-25 21:58:58

我现在已经解决了这个问题。

代码语言:javascript
复制
import itertools
dic = (set(itertools.product([-1, 0, 1], [0, 1, 2, 3, 4])))
for key,values in enumerate(dic):
    address = np.where(a==values)[0]
    a[np.delete(address,np.unique(address,return_index=True)[1])]=key
one_dim_result = a[:,0]

如果有更好的方法,请分享给我。谢谢

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

https://stackoverflow.com/questions/54861967

复制
相关文章

相似问题

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