我是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
coordCrossX
、coordCrossY
和第三维等于dimBlocks**2 = 16
构建这个完整的3D阵列可能有什么问题?
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) )