gpt4 book ai didi

python - 有没有一种有效的方法可以从数组索引计算两个 3D 向量的点积?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:37:38 26 4
gpt4 key购买 nike

我正在执行以下两个 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)

关于python - 有没有一种有效的方法可以从数组索引计算两个 3D 向量的点积?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55004395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com