Python 以矢量化方式获取(X,Y)坐标的min,max,argmin,argmax
我有一个坐标向量列表(x,y),如下所示:Python 以矢量化方式获取(X,Y)坐标的min,max,argmin,argmax,python,arrays,list,numpy,vector,Python,Arrays,List,Numpy,Vector,我有一个坐标向量列表(x,y),如下所示: coord=[[3,6], [7,9], [14,9], [11,8], [3,1], [7,14], [19,30] ] 我想要什么 从x坐标中获取最小值,然后打印给定的(x,y)向量 从x坐标中获取最大值,然后打印给定的(x,y)矢量 从y坐标中获取最小值,然后打印给定的(x,y)向量 从y坐标中获取最大值,然后打印给定的(x,y)向量 从x坐标中获取最小值,从y坐标中获取最小值,然后打印给定的(x,y)向量(换句话说,最小向量) 从x坐标中获取
coord=[[3,6],
[7,9],
[14,9],
[11,8],
[3,1],
[7,14],
[19,30]
]
我想要什么
高效的矢量化方法是什么?首先,将嵌套的
列表转换为NumPy数组:
coord = np.array(coord)
现在,您可以通过coord[:,0]
获得x值的一维数组,通过coord[:,1]
获得y值。使用np.argmin
和np.argmax
函数获取最小/最大值的索引,您可以执行以下操作:
xmin_index = np.argmin(coord[:, 0])
xmin_coord = coord[xmin_index]
print(xmin_coord) # The (x,y) pair with minimum x, (3,6)
根据@jmd_dk l提出的建议,更新如下:
coord = np.array(coord)
xmin_value=np.min(coord[:,0])
min_x_vectors = coordinates[np.where(coordinates[:, 0] == xmin_value)]
minimum = np.argmin(min_x_vectors[:, 1])
x0,y0=min_x_vectors[minimum]
这将返回[3,1]
而不是[3,6]
请共享您的代码以显示您迄今为止的尝试。欢迎使用StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。在这里申请。StackOverflow不是设计、编码、研究或教程服务。它只适用于一维。例如,这里的minx值是3,但是我想返回与miny值对应的minx值向量。比如我们这里有[3,6]和[3,1],我们应该返回[3,1]而不是[3,1],6@eric我看不出这与维度有什么关系。这给出了[3,6]
,因为最小x
值是3
(碰巧出现两次)并且np.argmin
返回最小元素第一次出现的索引。我在寻找与最小x相对应的y的最小值。所以我们首先寻找最小x值,然后我们得到一个向量列表(x_min,y),然后我们查看最小y