-
www说
这是一个可以完成这项工作的快速单行文字:np.array([np.arange(i, i+3) for i in range(1, 6)])其中3是列数或每个数组中的元素数,6是要执行的迭代次数 - 或者在本例中是要创建的数组数;这就是输出中有 5 个数组的原因。输出:array([[1, 2, 3],
[2, 3, 4],
[3, 4, 5],
[4, 5, 6],
[5, 6, 7]])
-
守候你守候我
更改代码,类似这样的事情可以工作:two_d_array = np.array([[(y*3)+x+1 for x in range(3)] for y in range(5)])>>> [[1,2,3],[4,5,6],...]two_d_array = np.array([[y+x+1 for x in range(3)] for y in range(5)])>>> [[1,2,3],[2,3,4],...]
-
慕少森
你已经得到了一些很好的理解答案,所以这里有一些 numpy 解决方案。简单加法:np.arange(1, 6)[:, None] + np.arange(3)疯狂的跨步技巧:base = np.arange(1, 8)np.lib.stride_tricks.as_strided(base, shape=(5, 3), strides=base.strides * 2).copy()重塑累积和:base = np.ones(15)base[3::3] = -1np.cumsum(base).reshape(5, 3)