如果您有一个
dset类似的名称,并且只想获取
1值,则可以使用
nonzero,它“返回一个数组元组,每个数组对应一个
a,包含该维度中非零元素的索引。”
例如,我们可以制作一个简单的3d数组:
>>> import numpy>>> numpy.random.seed(29)>>> d = numpy.random.randint(0, 2, size=(3,3,3))>>> darray([[[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 pltfrom mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()ax = fig.add_subplot(111, projection='3d')ax.scatter(x, y, -z, zdir='z', c= 'red')plt.savefig("demo.png")给予



