有没有一种有效的方法可以将二维 numpy 数组(坐标数组)拆分为两个一维 numpy 数组?
Is there an efficient way of splitting a 2-D numpy array(an array of coordinates) to two 1-D numpy arrays?
这是我的数组,我想将它分成两个数组,一个包含对的所有第一个值,一个包含对的所有第二个值。有什么有效的方法吗?
array([[-0.43042553, -0.1224234 ],
[-2.03524537, 0.56015045],
[ 1.40186973, -0.74534088],
[-0.04612834, -0.43374017],
[-0.71154051, -0.54219998],
[-0.10434967, -0.80116922],
[-0.28625899, -1.15067218],
[ 2.18190517, 0.52953827]])
这是您的操作方法。
>>> arr = np.array([[-0.43042553, -0.1224234 ],
... [-2.03524537, 0.56015045],
... [ 1.40186973, -0.74534088],
... [-0.04612834, -0.43374017],
... [-0.71154051, -0.54219998],
... [-0.10434967, -0.80116922],
... [-0.28625899, -1.15067218],
... [ 2.18190517, 0.52953827]])
>>>
>>> arr
array([[-0.43042553, -0.1224234 ],
[-2.03524537, 0.56015045],
[ 1.40186973, -0.74534088],
[-0.04612834, -0.43374017],
[-0.71154051, -0.54219998],
[-0.10434967, -0.80116922],
[-0.28625899, -1.15067218],
[ 2.18190517, 0.52953827]])
>>> a1, a2 = arr[:,0], arr[:,1]
>>> a1
array([-0.43042553, -2.03524537, 1.40186973, -0.04612834, -0.71154051,
-0.10434967, -0.28625899, 2.18190517])
>>> a2
array([-0.1224234 , 0.56015045, -0.74534088, -0.43374017, -0.54219998,
-0.80116922, -1.15067218, 0.52953827])
你可以直接切片
arr = np.array([[-0.43042553, -0.1224234 ],
[-2.03524537, 0.56015045],
[ 1.40186973, -0.74534088],
[-0.04612834, -0.43374017],
[-0.71154051, -0.54219998],
[-0.10434967, -0.80116922],
[-0.28625899, -1.15067218],
[ 2.18190517, 0.52953827]])
arr1, arr2 = arr[:, 0], arr[:, 1]
与其他答案类似但更简洁:
a1, a2 = arr.T
这是我的数组,我想将它分成两个数组,一个包含对的所有第一个值,一个包含对的所有第二个值。有什么有效的方法吗?
array([[-0.43042553, -0.1224234 ],
[-2.03524537, 0.56015045],
[ 1.40186973, -0.74534088],
[-0.04612834, -0.43374017],
[-0.71154051, -0.54219998],
[-0.10434967, -0.80116922],
[-0.28625899, -1.15067218],
[ 2.18190517, 0.52953827]])
这是您的操作方法。
>>> arr = np.array([[-0.43042553, -0.1224234 ],
... [-2.03524537, 0.56015045],
... [ 1.40186973, -0.74534088],
... [-0.04612834, -0.43374017],
... [-0.71154051, -0.54219998],
... [-0.10434967, -0.80116922],
... [-0.28625899, -1.15067218],
... [ 2.18190517, 0.52953827]])
>>>
>>> arr
array([[-0.43042553, -0.1224234 ],
[-2.03524537, 0.56015045],
[ 1.40186973, -0.74534088],
[-0.04612834, -0.43374017],
[-0.71154051, -0.54219998],
[-0.10434967, -0.80116922],
[-0.28625899, -1.15067218],
[ 2.18190517, 0.52953827]])
>>> a1, a2 = arr[:,0], arr[:,1]
>>> a1
array([-0.43042553, -2.03524537, 1.40186973, -0.04612834, -0.71154051,
-0.10434967, -0.28625899, 2.18190517])
>>> a2
array([-0.1224234 , 0.56015045, -0.74534088, -0.43374017, -0.54219998,
-0.80116922, -1.15067218, 0.52953827])
你可以直接切片
arr = np.array([[-0.43042553, -0.1224234 ],
[-2.03524537, 0.56015045],
[ 1.40186973, -0.74534088],
[-0.04612834, -0.43374017],
[-0.71154051, -0.54219998],
[-0.10434967, -0.80116922],
[-0.28625899, -1.15067218],
[ 2.18190517, 0.52953827]])
arr1, arr2 = arr[:, 0], arr[:, 1]
与其他答案类似但更简洁:
a1, a2 = arr.T