我有一个坐标向量列表(x,y)如下:
coord=[[3,6],
[7,9],
[14,9],
[11,8],
[3,1],
[7,14],
[19,30]
]
我想得到什么?
从x坐标获取最小值然后打印给定的(x,y)向量
从x坐标获取最大值然后打印给定的(x,y)向量
从y coordintates获取最小值然后打印给定的(x,y)向量
从y coordintates获取最大值然后打印给定的(x,y)向量
从x坐标获取最小值,从y坐标获取最小值,然后打印给定的(x,y)向量(在其他术语中为最小向量)
从x坐标获取最大值,从y坐标获取最大值,然后打印给定的(x,y)向量(在其他术语中为最大向量)
这样做的有效和矢量化方法是什么?
答案 0 :(得分:0)
首先,将嵌套的list
转换为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)
答案 1 :(得分:-1)
根据@jmd_dk提出的建议,我将其更新如下:
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]