起初我需要一个像这样的数组:[0. , 0.25, 0.5 , 0.75, 1. ]
,这是np.linspace(0,1,5)
。但现在我需要一个像这样的数组:
[[0. , 0.],
[0.25, 0.5],
[0.5 , 1.],
[0.75, 1.5],
[1. , 2]]
请注意array[1][0] != array[1][1]
!
无法解释如何,但它应该像这样:
array[:][0] = np.linspace(0,1,5)
array[:][1] = np.linspace(0,2,5)
哪里有array[0][0] is np.linspace(0,1,5)[0]
和array[1][0] is np.linspace(0,1,5)[1]
我希望你能理解我在这里要构建的数组。提前致谢!
np.c_是这个的numpy函数
np.c_[np.linspace(0,1,5),np.linspace(0,2,5)]
输出:
[0.25, 0.5 ],
[0.5 , 1. ],
[0.75, 1.5 ],
[1. , 2. ]])
请注意你的第一列是np.linspace(0,1,5),第二列是np.linspace(0,2,5),所以你可以用这两个组件创建那个数组,首先从这两个组成一个形状为2x5的数组比你转置数组时,它转向你的5x2数组:
np.array([np.linspace(0,1,5),np.linspace(0,2,5)]).T
这是一种方式:
In [33]: start = np.array([0, 0])
In [34]: stop = np.array([1, 2])
In [35]: n = 5
In [36]: np.linspace(0, 1, n).reshape(-1, 1)*(stop - start) + start
Out[36]:
array([[0. , 0. ],
[0.25, 0.5 ],
[0.5 , 1. ],
[0.75, 1.5 ],
[1. , 2. ]])
第二个数组只是第一个数组的两倍。所以你也可以考虑以下几点
a = np.linspace(0,1,5)
b = 2*a
np.column_stack((a, b))
# array([[0. , 0. ],
# [0.25, 0.5 ],
# [0.5 , 1. ],
# [0.75, 1.5 ],
# [1. , 2. ]])
或者,您也可以这样做
np.vstack((a,b)).T
要么
np.concatenate((a.reshape(5,1), b.reshape(5,1)), axis=1)