我在处理两个数组,试图像处理二维数组一样处理它们。我对NumPy使用了很多矢量计算。想知道如何填充这样的数组吗:
X = [1, 2, 3, 1, 2, 3, 1, 2, 3]
或:
X = [0.2, 0.4, 0.6, 0.8, 0.2, 0.4, 0.6, 0.8, 0.2, 0.4, 0.6, 0.8, 0.2, 0.4, 0.6, 0.8]
忽略消息的第一部分。
我必须以网格的形式填充两个数组。但是网格的尺寸因用户而异,所以我需要一个通用的表格。我一上午都在努力,终于得到了我想要的。
如果我早些时候引起了混乱,我很抱歉。英语不是我的语言,有时我很难解释。
这是为我做这项工作的代码:
myIter = linspace(1, N, N)
for x in myIter:
for y in myIter:
index = ((x - 1)*N + y) - 1
X[index] = x / (N+1)
Y[index] = y / (N+1)
用户输入N。 X,Y的长度是N*N
您可以使用函数^{} 。从例子来看:
使用此函数,您还可以立即重新调整数组的形状,就像使用“重新调整”的其他答案中所做的那样(通过定义“重复”是更多维度):
加法:并比较内置函数
tile
和乘法之间的速度差:编辑
您在问题中给出的代码的输出也可以实现如下:
这样就可以避免数组循环(这是使用numpy的一大优势)。生成的代码更简单(如果您知道函数,请参阅文档中的repeat和tile)也更快。
相关问题 更多 >
编程相关推荐