Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy-仅更改数组中一列的值的更简单方法?_Python_Arrays_Numpy - Fatal编程技术网

Python Numpy-仅更改数组中一列的值的更简单方法?

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.

我想制作一个二维数组,其中一列保持不变,另一列随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. ]]

有更好的办法吗?

没有更好的办法,但我会的

>>> 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)