我想制作一个二维数组,其中一列保持不变,另一列与linspace不同。
这有效,但看起来有点笨重:
np.hstack((np.tile(45,(21,1)), np.array([np.linspace(55,65,21)]).T))
[[ 45. 55. ]
[ 45. 55.5]
[ 45. 56. ]
[ 45. 56.5]
[ 45. 57. ]
[ 45. 57.5]
[ 45. 58. ]
[ 45. 58.5]
[ 45. 59. ]
[ 45. 59.5]
[ 45. 60. ]
[ 45. 60.5]
[ 45. 61. ]
[ 45. 61.5]
[ 45. 62. ]
[ 45. 62.5]
[ 45. 63. ]
[ 45. 63.5]
[ 45. 64. ]
[ 45. 64.5]
[ 45. 65. ]]
有更好的方法吗?
答案 0 :(得分:3)
这看起来更干净,但我没有看到太多的优势:
x = np.empty((21, 2))
x[:, 0] = 45
x[:, 1] = np.linspace(55, 65, x.shape[0])
答案 1 :(得分:1)
不是很好,但我会做的
>>> a = np.full((21, 2), 45.0)
>>> a[..., 1] = np.linspace(55, 65, a.shape[0])
>>> a
array([[ 45. , 55. ],
[ 45. , 55.5],
[ 45. , 56. ],
[ 45. , 56.5],
[ 45. , 57. ],
[ 45. , 57.5],
[ 45. , 58. ],
[ 45. , 58.5],
[ 45. , 59. ],
[ 45. , 59.5],
[ 45. , 60. ],
[ 45. , 60.5],
[ 45. , 61. ],
[ 45. , 61.5],
[ 45. , 62. ],
[ 45. , 62.5],
[ 45. , 63. ],
[ 45. , 63.5],
[ 45. , 64. ],
[ 45. , 64.5],
[ 45. , 65. ]])
>>>