【问题标题】:3-dimensional Array and assignment of an additional variable with python and numpy3维数组和使用python和numpy分配一个附加变量
【发布时间】:2013-07-31 09:20:58
【问题描述】:

我想创建一个标准距离为每个方向一个的三维数组,以便我接收,x=10; y=10; z=10;例如,1000 个细胞。在下一步中,我想为每个单元格分配一个附加变量“E”,其值由均值为 1 且方差为 0,1 的高斯分布组成。

我已经尝试使用以下方法创建多维数组:

import numpy as np
x = np.array([[range(11)],[range(11)],[range(11)]],dtype=int)

还有:

x,y,z = mgrid[0:11, 0:11, 0:11]

但我不知道它是否是我正在寻找的类型以及如何将变量添加到它的每个单元格。

我对编程和 python 还是很陌生。作为附加模块,我想使用 numpy、scipy 和 matplotlib。

感谢您的帮助!

最好的问候。

【问题讨论】:

  • 你想添加一个从高斯分布中抽取的随机变量吗?
  • 是的,我想从高斯分布中分配一个随机变量,每个单元格的平均值为 1,方差为 0.1。它会遵循高斯密度函数,不是吗?

标签: python numpy multidimensional-array gaussian


【解决方案1】:
import numpy as np
E = np.random.normal(size=(1000, 1000, 1000)) * 0.1
print(E.shape)
# (1000, 1000, 1000)

print(E.var())
# 0.0100944667935

这将创建一个 3 维数组,其元素是从正态分布采样的随机变量(均值 0,方差 0.1)。

我不明白你问题的第一部分。你能举一个具体的小例子来说明你想要该数组中的哪些值?

【讨论】:

  • 您好,感谢您的帮助。我希望这些值的大小可变,这意味着我想为 x、y 和 z 轴输入一个最大值。如果你把它想象成一个包含许多小立方体的 3 维魔方,我希望每个小立方体在轴长度上都有 x=1 y=1 z=1,因此站点长度为 x=10 y=10 z= 的魔方10 有 1000 个小立方体,站点长度 x=1 y=1 z=1。例如,“minicube”一的坐标为 x=1 y=1 z=1,而 minicube 2 的坐标为 x=1 y=1 z=2,而 minicube 2 在 z 轴方向上将紧邻 minicube 1。跨度>
  • 那么E是你要找的吗?它在每个方向上都有 1000 个“小立方体”,并且填充了随机值。请记住,数组没有边长,所以我不明白您希望如何将 rubikscube 模型的这方面转换为 NumPy 数组。如果您可以发布一个具体的小示例来说明数组的外观,那将非常有帮助。
  • 嗨,我举了一个例子:s1.directupload.net/file/d/3333/gjgcxwgk_png.htm 它显示了从高斯分布中每个应该具有确定价值的小立方体。
  • 好的,感谢您的绘图。但是现在您必须向我们展示这对于数组的含义:np.array([[[...],[...],],...])。数组不是迷你立方体。 minicube 的某些属性,例如边长,在 NumPy 数组方面没有类似物。
  • 好吧,但是我可以通过在每个方向上使用向量来定义这个迷你立方体,因为 numpy 正在从每个方向的 0,0,0 构建数组,不是吗?在我将使用向量进行进一步数学运算的情况下,我可以定义 x=1 y=1 z=1 为第一个点,x=3, y=3, z=3 为第二个点,这样 numpy 会自动认为我正在接受向量或向量差指向的单元格。 python可以实现边长、单元格间距等的3维矩阵吗?
猜你喜欢
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 2020-12-21
  • 2021-03-20
  • 2016-05-22
相关资源
最近更新 更多