【发布时间】:2013-11-20 18:03:44
【问题描述】:
我有一个很大的矢量场,其中场很大(例如 512^3;但不一定是正方形)并且矢量是 2D 或 3D(例如形状是 [512, 512, 512, 2] 或 [512 , 512, 512, 3])。
计算向量平方大小的标量场的最快方法是什么?
我可以遍历每个方向,即
import numpy as np
shp = [256,256,256,3] # Shape of vector field
vf = np.arange(3*(256**3)).reshape(shp) # Create vector field
sf = np.zeros(shp[:3]) # Create scalar field for result
for ii in range(shp[0]):
for jj in range(shp[1]):
for kk in range(shp[2]):
sf[ii,jj,kk] = np.dot( vf[ii,jj,kk,:] , vf[ii,jj,kk,:] )
但是速度很慢,有什么更快的吗?
【问题讨论】:
-
你的问题和这个类似吗? stackoverflow.com/questions/6824122/…
标签: python math optimization vector numpy