Python 三角形,python制作三角形
您还可以使用“常规”numpy数组通过一个特殊的索引来实现这一点:import numpy as np。
data=np.zeros((10,10))
数据[np.arange(5),np.arange(5) 2]=[5,6,7,8,9]
数据[np.arange(3) 4,np.arange(3)]=[1,2,3]
打印数据
(如果想更简洁,可以把那些对np.arange的调用换成np.r_)。例如使用数据[NP。阿朗日(3) 4,NP。Arange (3)]而不是data[np.r_[:3] 4,np.r_[:3]])
这将产生:[[005000000]
[0 0 0 6 0 0 0 0 0 0]
[0 0 0 0 7 0 0 0 0 0]
[0 0 0 0 0 8 0 0 0 0]
[1 0 0 0 0 0 9 0 0 0]
[0 2 0 0 0 0 0 0 0 0]
[0 0 3 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]]
但是,如果您仍然想使用稀疏矩阵,请选中{}。(请注意,如果您想要将数据放置在具有正值的对角线位置(例如,示例中的3位于位置4),您需要将前置虚拟数据放置在行值上)
举个简单的例子:导入numpy作为np
将scipy作为sp导入
导入scipy.sparse
diag_rows=np.array([[1,1,1,1,1,1,
[2, 2, 2, 2, 2, 2, 2],
[0, 0, 0, 0, 3, 3, 3]])
位置=[-3,0,4]
打印sp.sparse.spdiags(diag_rows,positions,10,10)。托登斯()
这将产生:[[2 0 0 0 3 0 0 0 0 0]
[0 2 0 0 0 3 0 0 0 0]
[0 0 2 0 0 0 3 0 0 0]
[1 0 0 2 0 0 0 0 0 0]
[0 1 0 0 2 0 0 0 0 0]
[0 0 1 0 0 2 0 0 0 0]
[0 0 0 1 0 0 2 0 0 0]
[0 0 0 0 1 0 0 0 0 0]
[0 0 0 0 0 1 0 0 0 0]
[0 0 0 0 0 0 1 0 0 0]]
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。