具有numpy的重复数组维度(无np.重复)

2024-06-26 04:09:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想复制一个numpy数组维度,但是在某种程度上原始维度数组和复制维度数组的和仍然相同。例如,考虑一个n x m形状数组(a),我想把它转换成n x n x mb)数组,这样a[i,j] == b[i,i,j]。不幸的是,np.repeat和{}不适合这份工作。有没有其他的numpy函数我可以使用或这是可能的一些创造性的索引?在

>>> import numpy as np
>>> a = np.asarray([1, 2, 3])
>>> a
array([1, 2, 3])
>>> a.shape
(3,)
# This is not what I want...
>>> np.resize(a, (3, 3))
array([[1, 2, 3],
       [1, 2, 3],
       [1, 2, 3]])

在上面的例子中,我想得到这个结果:

^{pr2}$

Tags: 函数importnumpyisasnpnot数组
1条回答
网友
1楼 · 发布于 2024-06-26 04:09:26

从1d到2d数组,可以使用np.diagflat方法,该方法可以创建一个二维数组,其中平坦的输入作为对角线的:

import numpy as np
a = np.asarray([1, 2, 3])

np.diagflat(a)
#array([[1, 0, 0],
#       [0, 2, 0],
#       [0, 0, 3]])

更一般地说,您可以创建一个零数组,并使用高级索引指定值:

^{pr2}$

相关问题 更多 >