根据我所知道的numpy,一次将一个操作应用于一个数组的每一行是个坏主意.广播显然是首选方法.鉴于此,我如何获取具有形状的数据(N,3)并将其转换为质心?以下是我正在使用的"坏方法".这有效,但我怀疑它会有大的性能影响N:
CM = R.sum(0)/R.shape[0]
for i in xrange(R.shape[0]): R[i,:] -= CM
Run Code Online (Sandbox Code Playgroud)
正如您所定义的那样,您可以将质量中心计算简化为:
R -= R.mean(axis=0)
Run Code Online (Sandbox Code Playgroud)
如果数组的不同元素定义了不同的质量mass,我会使用:
R -= np.average(R,axis=0,weights=mass)
Run Code Online (Sandbox Code Playgroud)
见http://docs.scipy.org/doc/numpy/reference/generated/numpy.average.html
| 归档时间: |
|
| 查看次数: |
6101 次 |
| 最近记录: |