我试图为我拥有的每一项创建一个10的数组,但随后将这些10的数组对角地放入一个更大的数组中,用零填充缺失的空格。
下面是一个我正在寻找的例子,但只有3个数组。
import numpy as np
arr = np.tri(3,3)
arr
这将创建一个如下所示的数组:
[[1,0,0],
[1,1,0],
[1,1,1]]
但是我需要一个10 * n的数组,看起来像这样:(此处以数组a 3为例,n = 2)
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
任何帮助将不胜感激,谢谢!
我也试过
df_arr2 = pd.concat([df_arr] * (n), ignore_index=True)
df_arr3 = pd.concat([df_arr2] *(n), axis=1, ignore_index=True)
但这会在所有行和列上重复矩阵,而我只想要对角的。
2条答案
按热度按时间eoxn13cs1#
我看过@brandt的解决方案,这绝对是最好的。如果你想手动构建它们,你可以使用以下方法:
以下是一些示例执行以及使用
ppprint
时的情况:第一个
祝您好运!
ia2d9nvy2#
现在我明白了... AFAIU,OP想要那些
np.tri
三角形在一个更大的,倍数的3
方形数组的对角线上。例如,对于
n=2
: