【发布时间】:2018-07-09 09:23:39
【问题描述】:
我有这些数组:
A=np.array([160.592625, 161.616830, 161.672708, 163.544365, 163.745786, 164.260333, 164.277012]) # points on x-axis
B=np.array([53.090028, 54.829213, 54.573222, 47.244701, 52.033966, 48.613694, 53.425587]) # points on y-axis
我创建了 (x,y) 坐标的数组:
coord = np.array([A, B])
我还有另一个坐标数组:
C=np.array([160.514, 161.67894, 161.68438, 160.59858, 161.55013, 161.61683, 161.55903, 161.67383, 161.70316, 161.63421 ])
D=np.array([53.068106, 54.552493,53.171848, 54.907098, 54.852462, 54.829213, 54.916358, 54.801067, 54.65673, 54.599929])
还有一列距离:
z=np.array([0.0452326, 0.903051, 0.126823, 0.101169, 0.000164209, 0.127296, 0.303595, 0.144146, 0.142063, 0.144751])
现在我想创建一个压缩的坐标数组,所以:
coord1=np.array([C,D])
目的如下:搜索coord中的点在coord1中的位置,然后从z中提取相应的距离。这是我的代码:
delta = 0.09
for i in range(coord.shape[1]):
for j in range(coord1.shape[1]):
if (np.all(coord[:,i] >= coord1[:,j]-delta)) and (np.all(coord[:,i] <= coord1[:,j]+delta)):
print coord[:,i], i, coord1[:,j], z[j], j
输出如下:
[ 160.592625 53.090028] 0 [ 160.514 53.068106] 0.000164209 0
[ 161.61683 54.829213] 1 [ 161.55013 54.852462] 0.303595 4
[ 161.61683 54.829213] 1 [ 161.61683 54.829213] 0.144146 5
[ 161.61683 54.829213] 1 [ 161.55903 54.916358] 0.142063 6
[ 161.61683 54.829213] 1 [ 161.67383 54.801067] 0.903051 7
[ 161.672708 54.573222] 2 [ 161.67894 54.552493] 0.0452326 1
[ 161.672708 54.573222] 2 [ 161.70316 54.65673] 0.144751 8
[ 161.672708 54.573222] 2 [ 161.63421 54.599929] 0.101169 9
如您所见,我对1和2有多个对应关系。对于这些元素,我只想保留最小的z元素。例如:1s中,我只想打印
[ 161.61683 54.829213] 1 [ 161.55013 54.852462] 0.303595 4
仅在 2 秒之间
[ 161.672708 54.573222] 2 [ 161.67894 54.552493] 0.0452326 1
我不知道...提前谢谢
【问题讨论】:
-
伪代码-无论您要打印什么,将其放入列表中-然后遍历列表,将“i”作为索引,当您获得 Z 的最小值时-仅从列表中获取该值
-
谢谢!但通过这种方式,我将得到一个 z 值。我想捕获链接到索引 1 的最小值,索引 2 的最小值...
-
好吧,让我开发一些代码,你能告诉我这些数据有多大吗?
-
谢谢! coord 大约是 100,coord1 大约是 10000...
标签: python arrays loops for-loop minimum