繁体   English   中英

从其他多列中减去一列

[英]Subtracting one column from multiple other columns

我有一个由7列组成的数组,我试图从所有其他列中减去第一列。 现在,我的代码如下所示:

a  = (q[:,0]-q[:,1])**2
a1 = (q[:,0]-q[:,2])**2
a2 = (q[:,0]-q[:,3])**2
a3 = (q[:,0]-q[:,4])**2
a4 = (q[:,0]-q[:,5])**2
a5 = (q[:,0]-q[:,6])**2

效果很好,除了我要对许多文件尝试这样做而且效率极低。 有没有更有效的方式来编写相同的代码?

谢谢

如果要从所有其他列中减去第一列,则可以执行

import numpy as np
x = np.arange(40).reshape(8, 5) #sample data
y = (x - x[:,0,None])**2

x[:,0,None]代表第一列。 如果仅尝试x - x[:,0] ,则numpy无法一起广播形状(在这种情况下为(8,5)和(8,))。 添加x[:,0,None] (或x[:,0,np.newaxis] )使第二个形状( x[:,0,np.newaxis] )和numpy可以一起广播两者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM