问题描述
假设
A = np.array([[1,2,3,5,0],[5,6,7,9,10]])
(在这种情况下,实际数据集是一个对角线为零的方阵)我想创建一个np数组V,该数组将每一行中第一个零点上反射的对加起来,并按照它们与零。即V [0] = [(2 + 3),(1 + 5),0] V [1] = [(7 + 9),(6 + 5),(10 + 5)] ...
所以
V = ([5,[16,11,15])
我可以通过循环遍历每一行,然后将每一行添加到其反射的平移版本中,以非常简单的方式来完成此操作,只需两行就可以像这样简单。
B = A.copy()
B = B[...,::-1]
V = np.array([A[0]+np.roll(B[0],-2),A[1]+B[1]])[:,0:3]
但是我想知道是否有矢量化的方法来执行此操作,或者是否有一些numpy固有的函数来对数组的项及其在对角线上的反射求和,因为随着数据集的变大,效率会降低。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)