python - 有没有一种有效的方法来计算数组索引中两个 3D 向量的点积?
问题描述
我正在执行两个 3D 向量的以下点积:
import numpy as np
Nk = 8
Ns = 15
k_box = np.zeros(Nk**3)
R_box = np.zeros(Ns**3)
for k in range(Nk**3):
Kx = int(k / (Nk*Nk))
Ky = int(k / Nk) % Nk
Kz = k % Nk
for R in range(Ns**3):
Rx = int(R / (Ns*Ns))
Ry = int(R / Ns) % Ns
Rz = R % Ns
# This is the only place these variables are used!
dot_product = Rx*Kx + Ry*Ky + Rz*Kz
k_box[k], R_box[R] = perform_some_calculation(dot_product)
有没有办法在不首先x, y, z
明确计算组件的情况下计算点积?把它变成 6 个循环会起作用,但看起来很恶心。这似乎是一种有技巧的事情。
我可能还需要将它扩展到非立方体积,所以如果有一个技巧并且它适用于一般的盒子几何体,那将是理想的。
解决方案
点积应按如下方式完成
import numpy as np
R = np.array([Rx,Ry,Rz])
K = np.array([Kx,Ky,Kz])
value = np.dot(R,K)
推荐阅读
- c++ - task.wait() 中的 cpprestsdk 分段错误
- logstash - Logstash 以错误开始:管道 YAML 文件为空
- php - 如何按与位置的距离对 Laravel 集合进行排序?
- javascript - React - Internet Explorer 11 输入在第一次 onchange 后失去焦点
- c++ - C++ 在尝试比较字符串“==”或 CString.Find() 时更好
- three.js - 如何知道用户何时更改了对象的 3d 位置?
- java - 获取通用基础存储库的参数类型名称
- java - Jsp中如何使用条件
我需要检查上传文件的大小、类型并将上传的文件名设置为 fileUpload 值标签。
我在 uploadController 中为它们编写了简单的函数,需要调用它们来检查文件大小和类型。有没有推荐的方法来做这个文件验证?