我想使用单独的函数计算矩阵值,并将第一列和第一行作为输入。
我希望收到有关优化以下代码的建议:
render() {
return (
<>
<ChildA />
<ChildB />
<ChildC />
</>
);
}
以上就是我想要的。
但是有更好的方法,更有效率和避免循环吗?
注意: 感谢回应。
答案 0 :(得分:3)
设置ma
后,您可以通过扩展其中一个切片部分的尺寸来替换矢量化方法的嵌套循环:ma[0,1:]
和添加与另一个切片{ {1}},会带来broadcasting
。作为一种矢量化方法,这必须非常快。因此,循环替换看起来像这样 -
ma[1:,0]
请注意,写ma[1:,1:] = ma[0,1:][:,None] + ma[1:,0]
的更简洁方式是ma[0,1:][:,None]
。
答案 1 :(得分:0)
df = pd.DataFrame(ma)
print df
0 1 2 3 4 5
0 NaN -180 -160 -140 -120 -100
1 5 0 0 0 0 0
2 10 0 0 0 0 0
3 15 0 0 0 0 0
4 20 0 0 0 0 0
5 25 0 0 0 0 0
df.ix[1:,1:] = (df.ix[1:,1:].add(df.ix[1:,0],axis=0) + df.ix[0,1:]).T
print df
0 1 2 3 4 5
0 NaN -180 -160 -140 -120 -100
1 5 -175 -170 -165 -160 -155
2 10 -155 -150 -145 -140 -135
3 15 -135 -130 -125 -120 -115
4 20 -115 -110 -105 -100 -95
5 25 -95 -90 -85 -80 -75