如何将这两个二维数组合并为两行,每行包含10行8列的三维矩阵

我现在有两个二维数组,行和列是10、8,如何将这两个二维数组合并为两行,每行包含10行8列的三维矩阵

import numpy as np

# 定义第一个二维数组
array1 = np.random.rand(10, 8)  

# 定义第二个二维数组
array2 = np.random.rand(10, 8)  

# 初始化三维数组
array3d = np.empty((2, 10, 8))

# 将第一个二维数组赋值给三维数组的第一行
array3d[0, :, :] = array1 

# 将第二个二维数组赋值给三维数组的第二行
array3d[1, :, :] = array2

# 三维数组形状 
array3d.shape 
# (2, 10, 8)

解释:

  1. 使用numpy生成两个10行8列的二维随机数组array1和array2
  2. 定义一个三维数组array3d,形状为2行10列8个元素
  3. 使用数组切片将array1赋值给array3d第一行
  4. 使用数组切片将array2赋值给array3d第二行
  5. array3d现在变成了两行,每行包含一个10行8列的二维数组所以,array3d的最终形状为(2, 10, 8),实现了您要求的将两个二维数组合并为三维数组的效果。

望采纳!

c语言 参考如下:

#include <stdio.h>

int main() 
{
    int a[2][10][8];
    int b[10][8] = {0};
    int c[10][8] = {1};
    
    int i, j;
    for (i = 0; i < 10; i++)
    {
        for (j = 0; j < 8; j++)
        {
            a[0][i][j] = b[i][j];
            a[1][i][j] = c[i][j];
        }
    }

    return 0;
}