python - 从网格网格生成的子数组构建 3D 数组并引入第 3 维

标签 python numpy numpy-ndarray

我是 Python 新手,我想构建一个尺寸为 1e3 x 1e3 x 16 的完整 3D 数组。

为此,我尝试这样做:

dimBlocks = 4
numElBlock = 1000
numPoints = 1000

arrayCrossX = np.linspace(kMIN, kMAX, numPoints, endpoint=True)
arrayCrossY = np.linspace(-1, 1, numPoints, endpoint=True)

coordCrossX, coordCrossY = np.meshgrid(arrayCrossX, arrayCrossY)
arrayFullCross = np.array(coordCrossX.size, coordCrossY.sizes, dimBlocks**2)

但它不起作用,我收到以下错误:

arrayFullCross = np.array(arrayCrossX.size, arrayCrossY.size, dimBlocks**2) ValueError: only 2 non-keyword arguments accepted

从子数组构建这个完整的 3D 数组可能会出现什么问题 coordCrossX , coordCrossY第三个维度等于 dimBlocks**2 = 16

最佳答案

arrayFullCross = np.array(arrayCrossX.size, arrayCrossY.size, dimBlocks**2)
ValueError: only 2 non-keyword arguments accepted

np.array 的签名:

array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

使用np.array的正确方法:

In [658]: np.array([1,2,3], float)   # 2 nonkeyword arguments
Out[658]: array([1., 2., 3.])

也就是说,您要从中创建数组的对象,后跟可选的dtype。其他任何东西都必须有一个像copy这样的参数。

您提供 3 个位置参数。由于它们都是大小,因此您需要使用类似 np.zeros:

np.zeros( (arrayCrossX.size, arrayCrossY.size, dimBlocks**2) )

关于python - 从网格网格生成的子数组构建 3D 数组并引入第 3 维,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54611887/

相关文章:

python - OpenAi-Gym 具有负值的离散空间

Python:将 1×28×28 数组转换为 28×28 矩阵

python - 判断一个矩阵是否为单位矩阵(numpy)

python - 查找文件中缺失的行

python - 刺穿 3D 阵列

python - Python 中的 2D RTS?

python - 如何使用 Python 访问属于对象的动态 C++ 数组变量?

python - numpy 3D 点积

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

python - 对数组进行切片以排除单个元素