我有一个大向量场,其中场很大(例如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,:] )
但那个相对较慢,有更快的选择吗?