如何用Numpy创建行元素为行号乘连续值的n阶矩阵?
解决方案
要实现你需要的n×n矩阵,只需修改原代码的数组运算逻辑,借助Numpy的广播特性就能完成需求。
修改后的代码
import numpy as np n = 4 # 可替换为任意正整数 i, j = np.ogrid[:n, :n] L = (i + 1) * j print(L)
代码说明
np.ogrid[:n, :n]生成两个支持广播运算的数组:i是形状为(n, 1)的列数组,元素为[0, 1, ..., n-1](行索引)j是形状为(1, n)的行数组,元素为[0, 1, ..., n-1](列索引)
- 你的需求是行号×连续数值,而
i的行索引从0开始,所以用i + 1将其转换为从1开始的行号 (i + 1) * j触发广播运算后,每行自动生成行号×[0,1,...,n-1]的结果,完全匹配你给出的示例- 若需要行号从0开始(第一行全为0),直接改为
L = i * j即可
内容的提问来源于stack exchange,提问作者Mery p.
相关产品推荐
相关产品推荐

