计算从第一行和第一列输入的数组值

时间:2016-01-20 07:07:40

标签: python arrays numpy pandas vectorization

我想使用单独的函数计算矩阵值,并将第一列和第一行作为输入。

我希望收到有关优化以下代码的建议:

render() {
  return (
    <>
      <ChildA />
      <ChildB />
      <ChildC />
    </>
  );
}

以上就是我想要的。

但是有更好的方法,更有效率和避免循环吗?

注意: 感谢回应。

2 个答案:

答案 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)

您可以使用addT

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
相关问题