gpt4 book ai didi

python - 在 Python 中按浮点值切片二维数组

转载 作者:太空宇宙 更新时间:2023-11-03 12:56:04 25 4
gpt4 key购买 nike

我想在 Python 3.x 中通过 x 值对 [x,y] 坐标对数组进行切片,其方式与 this 的解决方案类似。问题,但坐标而不是一维列表。

例如,对于(numpy)坐标数组,我想要一个像这样的函数:

coords = np.array([[1.5,10],[2.5,20],[3.5,30],[4.5,40],[5.5,50]])
def slice_coords_by_x(xmin, xmax, arr):
*some function*
slice_coords_by_x(2, 4, arr)
>>>[[2.5,20],[3.5,30]]

如果解决方案包含或不包含 xmin 和 xmax,则不要过分挑剔,因为我将在超过 1000 左右的大范围内使用它。

最佳答案

切片并创建具有此类最小-最大限制的掩码,从而选择具有 boolean-indexing 的行-

def slice_coords_by_x(arr, xmin, xmax):
return arr[(arr[:,0] >= xmin) & (arr[:,0] <= xmax)]

样本运行-

In [43]: arr
Out[43]:
array([[ 1.5, 10. ],
[ 2.5, 20. ],
[ 3.5, 30. ],
[ 4.5, 40. ],
[ 5.5, 50. ]])

In [44]: slice_coords_by_x(arr, xmin=2, xmax=4)
Out[44]:
array([[ 2.5, 20. ],
[ 3.5, 30. ]])

In [45]: slice_coords_by_x(arr, xmin=1, xmax=5)
Out[45]:
array([[ 1.5, 10. ],
[ 2.5, 20. ],
[ 3.5, 30. ],
[ 4.5, 40. ]])

关于python - 在 Python 中按浮点值切片二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41684562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com