起初,我需要一个像这样的数组:
[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]
我希望您能理解我要在这里构建的数组。 预先感谢!
答案 0 :(得分:1)
请注意,您的第一列是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
答案 1 :(得分:0)
这是一种方法:
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. ]])
答案 2 :(得分:0)
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. ]])
答案 3 :(得分:0)
第二个数组只是第一个数组的两倍。因此,您还可以考虑以下内容
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
OR
np.concatenate((a.reshape(5,1), b.reshape(5,1)), axis=1)