Numpy python 数组切片
Numpy python array slicing
我有一个如下所示的数组,
[[240.66666667 171.22222222 158.33333333]
[218.66666667 134.77777778 143.33333333]
[197.33333333 118.55555556 128.44444444]
[195.22222222 119.33333333 126.11111111]
[196.77777778 118.55555556 123.77777778]
[183.11111111 111.88888889 118.88888889]
[173.77777778 106.77777778 114.44444444]]
我想对所有行的第一列和第三列进行切片并获得此输出,
[[240.66666667 158.33333333]
[218.66666667 143.33333333]
[197.33333333 128.44444444]
[195.22222222 126.11111111]
[196.77777778 123.77777778]
[183.11111111 118.88888889]
[173.77777778 114.44444444]]
有没有人有什么想法?
输出截图:
你可以只给出你想要的列,
>>> data
array([[240.66666667, 171.22222222, 158.33333333],
[218.66666667, 134.77777778, 143.33333333],
[197.33333333, 118.55555556, 128.44444444],
[195.22222222, 119.33333333, 126.11111111],
[196.77777778, 118.55555556, 123.77777778],
[183.11111111, 111.88888889, 118.88888889],
[173.77777778, 106.77777778, 114.44444444]])
>>> data[:, [0,2]]
array([[240.66666667, 158.33333333],
[218.66666667, 143.33333333],
[197.33333333, 128.44444444],
[195.22222222, 126.11111111],
[196.77777778, 123.77777778],
[183.11111111, 118.88888889],
[173.77777778, 114.44444444]])
>>>
您可以使用 numpy.delete
函数轻松做到这一点,如下所示:
a = np.array([[240.66666667, 171.22222222, 158.33333333],
[218.66666667, 134.77777778, 143.33333333],
[197.33333333, 118.55555556, 128.44444444],
[195.22222222, 119.33333333, 126.11111111],
[196.77777778, 118.55555556, 123.77777778],
[183.11111111, 111.88888889, 118.88888889],
[173.77777778, 106.77777778, 114.44444444]])
a = np.delete(a,1,axis=1)
有了那段代码,你就可以得到你想要的输出。
Output:
[[240.66666667 158.33333333]
[218.66666667 143.33333333]
[197.33333333 128.44444444]
[195.22222222 126.11111111]
[196.77777778 123.77777778]
[183.11111111 118.88888889]
[173.77777778 114.44444444]]
我有一个如下所示的数组,
[[240.66666667 171.22222222 158.33333333]
[218.66666667 134.77777778 143.33333333]
[197.33333333 118.55555556 128.44444444]
[195.22222222 119.33333333 126.11111111]
[196.77777778 118.55555556 123.77777778]
[183.11111111 111.88888889 118.88888889]
[173.77777778 106.77777778 114.44444444]]
我想对所有行的第一列和第三列进行切片并获得此输出,
[[240.66666667 158.33333333]
[218.66666667 143.33333333]
[197.33333333 128.44444444]
[195.22222222 126.11111111]
[196.77777778 123.77777778]
[183.11111111 118.88888889]
[173.77777778 114.44444444]]
有没有人有什么想法?
输出截图:
你可以只给出你想要的列,
>>> data
array([[240.66666667, 171.22222222, 158.33333333],
[218.66666667, 134.77777778, 143.33333333],
[197.33333333, 118.55555556, 128.44444444],
[195.22222222, 119.33333333, 126.11111111],
[196.77777778, 118.55555556, 123.77777778],
[183.11111111, 111.88888889, 118.88888889],
[173.77777778, 106.77777778, 114.44444444]])
>>> data[:, [0,2]]
array([[240.66666667, 158.33333333],
[218.66666667, 143.33333333],
[197.33333333, 128.44444444],
[195.22222222, 126.11111111],
[196.77777778, 123.77777778],
[183.11111111, 118.88888889],
[173.77777778, 114.44444444]])
>>>
您可以使用 numpy.delete
函数轻松做到这一点,如下所示:
a = np.array([[240.66666667, 171.22222222, 158.33333333],
[218.66666667, 134.77777778, 143.33333333],
[197.33333333, 118.55555556, 128.44444444],
[195.22222222, 119.33333333, 126.11111111],
[196.77777778, 118.55555556, 123.77777778],
[183.11111111, 111.88888889, 118.88888889],
[173.77777778, 106.77777778, 114.44444444]])
a = np.delete(a,1,axis=1)
有了那段代码,你就可以得到你想要的输出。
Output:
[[240.66666667 158.33333333]
[218.66666667 143.33333333]
[197.33333333 128.44444444]
[195.22222222 126.11111111]
[196.77777778 123.77777778]
[183.11111111 118.88888889]
[173.77777778 114.44444444]]