python – numpy数组到置换矩阵
发布时间:2020-12-20 12:07:35 所属栏目:Python 来源:网络整理
导读:np.array([1,2,3]) 我有阵容.我想把它变成一个numpy数组,每个1:1排列的元组.像这样: np.array([ [(1,1),(1,2),3)],[(2,(2,[(3,(3,]) 有关如何有效地做到这一点的任何想法?我需要做几百万次这个操作. 解决方法 如果您正在使用numpy,请不要使用元组.使用它
np.array([1,2,3]) 我有阵容.我想把它变成一个numpy数组,每个1:1排列的元组.像这样: np.array([ [(1,1),(1,2),3)],[(2,(2,[(3,(3,]) 有关如何有效地做到这一点的任何想法?我需要做几百万次这个操作. 解决方法
如果您正在使用numpy,请不要使用元组.使用它的力量并添加另一个尺寸为2的尺寸.
我的建议是: x = np.array([1,3]) np.vstack(([np.vstack((x,x,x))],[np.vstack((x,x)).T])).T 要么: im = np.vstack((x,x)) np.vstack(([im],[im.T])).T 对于一般数组: ix = np.vstack([x for _ in range(x.shape[0])]) return np.vstack(([ix],[ix.T])).T 这将产生你想要的东西: array([[[1,1],[1,2],3]],[[2,[2,[[3,[3,3]]]) 但作为3D矩阵,正如您在查看其形状时所看到的: Out[25]: (3L,3L,2L) 当阵列大小变大时,这比具有排列的解决方案更有效.我的解决方案针对@ Kasra的时间为1ms,而对于一个100的大小为100的阵列,我的解决方案为46ms.@ AshwiniChaudhary的解决方案更有效率. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容