从meshgrid生成的子阵列构建三维阵列,并引入第3维

2024-10-02 22:35:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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

为此,我尝试:

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

任何人都可以看到,用子数组coordCrossXcoordCrossY和第三维度等于dimBlocks**2 = 16来构建这个完整的3D数组有什么问题

敬礼


Tags: truesizenp数组arrayendpoint新手linspace
1条回答
网友
1楼 · 发布于 2024-10-02 22:35:01
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) )

相关问题 更多 >