Python Numpy-仅更改数组中一列的值的更简单方法?
我想制作一个二维数组,其中一列保持不变,另一列随linspace而变化 这是可行的,但似乎有点笨重:Python Numpy-仅更改数组中一列的值的更简单方法?,python,arrays,numpy,Python,Arrays,Numpy,我想制作一个二维数组,其中一列保持不变,另一列随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.
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. ]]
有更好的办法吗?没有更好的办法,但我会的
>>> 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. ]])
>>>
没什么好的,但我会的
>>> 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. ]])
>>>
这看起来更干净,但我看不出有什么好处:
x = np.empty((21, 2))
x[:, 0] = 45
x[:, 1] = np.linspace(55, 65, x.shape[0])
这看起来更干净,但我看不出有什么好处:
x = np.empty((21, 2))
x[:, 0] = 45
x[:, 1] = np.linspace(55, 65, x.shape[0])
您还可以使用
a[:,0]=45.0
,这意味着每个第一维度和第二维度中的第一个元素。类似地,a[:,1]=np.linspace(55,65,21)
。您也可以使用a[:,0]=45.0
,这意味着每个第一维度和第二维度中的第一个元素。类似地,a[:,1]=np.linspace(55,65,21)
。