首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在numpy中用函数值以与Java相同的速度填充3D数组?

如何在numpy中用函数值以与Java相同的速度填充3D数组?
EN

Stack Overflow用户
提问于 2018-10-27 05:43:17
回答 2查看 512关注 0票数 0

我试着用下面的代码来模拟3D圆柱体的体素:

代码语言:javascript
运行
复制
import math
import numpy as np

R0 = 500
hz = 1

x = np.arange(-1000, 1000, 1)
y = np.arange(-1000, 1000, 1)
z = np.arange(-10, 10, 1)

xx, yy, zz = np.meshgrid(x, y, z)


def density_f(x, y, z):
    r_xy = math.sqrt(x ** 2 + y ** 2)
    if r_xy <= R0 and -hz <= z <= hz:
        return 1
    else:
        return 0


density = np.vectorize(density_f)(xx, yy, zz)

它花了很多分钟来计算。

等价的次优Java代码运行10-15秒。

如何让Python以相同的速度计算体素?在哪里进行优化?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53016634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档