python - Numpy,给定范数返回可能的笛卡尔坐标

标签 python numpy coordinates

numpy 中是否有一些简单的工具可以给定一个值 x 返回三个模数为 x 的随机坐标?

最佳答案

好吧,我认为您不会为此目的在 numpy 中找到任何东西,但这会非常快:

from numpy.random import normal
from numpy.linalg import norm
from numpy import allclose
def random_vec(modulus):
    while True:
        y = normal(size=(3,))
        if not allclose(y,0):
            y *= modulus / norm(y)
            return y

以上我假设对于向量的模块,你的意思是 L2规范。请注意,我们必须检查至少一个坐标是否不太接近零(或零!),这样我们在重新缩放组件时就不会出现数值舍入问题。

编辑:现在使用 normal() 而不是 rand()

我们从正态分布中选取坐标(然后当然重新缩放它们)以获得半径模数球体上的随机点的原因解释了here .另请阅读下面 unutbu 的评论。

关于python - Numpy,给定范数返回可能的笛卡尔坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27580028/

相关文章:

Python根据不同的行创建新的数据框列

python - 如何使用 matplotlib 的动画编写器加速 MP4 的生成?

python - 如何将字符串拆分为两个数字

python - 如何将列表拆分为元组

python - np.nanmax() 除了一个轴之外的所有轴 - 这是最好的方法吗?

python - 基本 Python 元编程 : populating dictionaries?

javascript - css: <img> 给定坐标 x,y 位于另一个图像顶部的位置(使用 jquery)

java - 将字符串地址转换为 lat 和 lng 大约需要 1 秒

python - 如何在 Django 中自动更改模型字段

python - uWSGI虚拟主机问题