您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

从3D numpy数组创建3D图

从3D numpy数组创建3D图

如果您有一个dset类似的名称,并且只想获取1值,则可以使用nonzero,它“返回一个数组元组,每个数组对应一个a,包含该维度中非零元素的索引。”

例如,我们可以制作一个简单的3d数组:

>>> import numpy
>>> numpy.random.seed(29)
>>> d = numpy.random.randint(0, 2, size=(3,3,3))
>>> d
array([[[1, 1, 0],
        [1, 0, 0],
        [0, 1, 1]],

       [[0, 1, 1],
        [1, 0, 0],
        [0, 1, 1]],

       [[1, 1, 0],
        [0, 1, 0],
        [0, 0, 1]]])

并找到非零元素的位置:

>>> d.nonzero()
(array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2]), array([0, 0, 1, 2, 2, 0, 0, 1, 2, 2, 0, 0, 1, 2]), array([0, 1, 0, 1, 2, 1, 2, 0, 1, 2, 0, 1, 1, 2]))
>>> z,x,y = d.nonzero()

如果我们想要更复杂的切割,我们可以做类似的(d > 3.4).nonzero()事情,因为True的整数值为1,并且算作非零。

最后,我们绘制:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, -z, zdir='z', c= 'red')
plt.savefig("demo.png")

给予

演示3d图像

其他 2022/1/1 18:34:38 有479人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶