python - 组合 2 维数组形成 3 维数组

标签 python numpy

我正在定义一个将返回 3-d 网格的函数。在此期间,我使用一个已定义的函数来返回二维数组。我想在迭代过程中加入这些 2-d 数组以形成 3-d,但我查看了 meshgrid()、dstack()、concatenate() 等函数,但似乎无法让它们中的任何一个正确匹配进入代码。

该程序对来自点源的波在 2 维阵列上的传播进行建模,3 维阵列显示介质的位移在波长过程中如何变化。

def make_wave_snapshot(size,wavelength,phase):
    waves_array = np.zeros((size,size),np.float)
    if size%2==0:
        for y in range(size):
            for x in range(size):
                r = math.hypot((size/2 - x - 0.5),(size/2 - y - 0.5))
                d = np.sin((2*math.pi*r/wavelength)-phase)/np.sqrt(r)
                waves_array[y,x] = d
        dp.display_2d_array(waves_array) #This is in another module altogether
        return waves_array #Displays array showing values
    else:
        return 'Please use integer of size.'

def make_wave_sequence(size,wavelength,nsteps):
    waves_sequence = np.zeros((nsteps,size,size),np.float)
        if nsteps%1==0:
            for z in range(nsteps):
                make_wave_snapshot(size,wavelength,(2*math.pi*z/nsteps))
                waves_sequence = ???
            return waves_sequence #Displays array showing values
        else:
            return 'Please use positive integer for number of steps'

问题是将“wave_array”转换为“wave_sequence”。如果您编写任何代码,我们将非常感激慷慨的评论。非常感谢!

最佳答案

如果我理解正确的话,你有一个三维数组,类似于:

wave = np.zeros((2, 2, 2), np.float)

([[[0., 0.],
   [0., 0.]],
  [[0., 0.],
   [0., 0.]]])

您想要插入一个二维数组,从您的函数返回,例如:

([[ 1., 2.],
  [ 3., 4.]])

这样你的 3D 数组现在是:

([[[1., 2.],
   [3., 4.]],
  [[0., 0.],
   [0., 0.]]])

for 循环的第一次迭代之后。如果这是正确的,那么它实际上非常简单,并且您已经完成了大部分工作。只要选择正确的条目,您就可以将一个“元素”分配给 3D 数组(即 2D 数组):

for z in range(nsteps):
    waves_sequence[z] = make_wave_snapshot(size,wavelength,(2*math.pi*z/nsteps))

关于python - 组合 2 维数组形成 3 维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14444640/

相关文章:

Python Selenium : get element by class and convert to text

python - 如何将自定义元数据添加到 OpenCV/numpy 图像?

python - 比较两个包含 NaN 的矩阵并屏蔽两个矩阵中至少其中一个在 Python 中包含 NaN 的元素值

python - PANDAS:如何 pd.read_csv 并将 7 位整数拆分为 4 x 3 整数?

python - 函数中的矩阵 View 没有副作用

python - 如何将 Pandas Dataframe 写入现有的 Django 模型

python - Windows 上的 Tensorflow contrib.layers 兼容性

python - 有没有现有的批量日志文件聚合解决方案?

python - 将 numpy 导入为 np 与从 numpy 导入

python-3.x - 按列构造一个带有 dtypes 的 numpy 数组