如何从python2.7上的三个数组中分配三维

时间:2017-09-08 03:20:39

标签: python arrays arraylist

我会尽力说明我说的话。首先向您展示代码:

    import numpy as np
    import matplotlib.pyplot as plt

    np.random.seed(1977)
    x, y = np.random.random((2, 1000))
    xbins = np.linspace(0, 1, 10)
    ybins = np.linspace(0, 1, 10)
    counts, _, _ = np.histogram2d(x, y, bins=(xbins, ybins))

    print counts

如果我有另一个数组

,你将从这段代码中得到一个二维数组
       z = np.random.random((2, 1000))

然后如何从这三个数组中获得三维分布数组。我试过了:

      zbins = np.linspace(0, 1, 10)
      counts, _,_,_ = np.histogramdd(x, y, z, bins=(xbins, ybins, zbins))

但这没用。 更重要的是,真正的数据文件太大而不能使用循环语句,这将花费我几个小时来运行它,并且我不容易检查。 谢谢您考虑这个问题!

1 个答案:

答案 0 :(得分:1)

我根据您的上一条评论

制作了以下代码
import numpy as np

data = np.random.random((1000, 3))
nbins = 10
H, [bx, by, bz]=np.histogramdd(data, bins=(nbins,nbins,nbins), 
                               range=((0,1),(0,1),(0,1)))

H是每个网格中点数的摘要。在之前的代码中,histogramdd未正确使用。输入数据是第一个参数,在您的情况下应该是N x 3数组。

您可以看到document of histogramdd here