-1

大陸のみにデータをプロットしようとしていました。以前にこれについて質問しましたが、ここに答えがあります。これをコードに実装すると、プログラムはエラーなしで実行されます。

ただし、それは永遠に実行されます。でctrl + C強制停止すると に戻って"if not (map.is_land(X[i], Y[i])):"しまうので、ここがおかしいと思います。しかし、私はそれを理解することはできません。

以下は、大陸以外のデータを選択して削除するコードの一部です。

X, Y = map(Lon,Lat)
ocean = []
for i in range(len(X)):
    if not (map.is_land(X[i], Y[i])):
        ocean.append(i)

X_new = np.delete(X, ocean)
Y_new = np.delete(Y, ocean)
HDO_new = np.delete(HDO, ocean)
4

1 に答える 1

1

ループを使用しているためfor、プログラムはとにかく停止する必要があります。唯一の問題は の大きさですX。私は2つの提案しかできません:

len(X)1) for cicle に入る前にの値を印刷して、どれくらい大きいかを確認してください。

2) Python 2.x を使用している場合は、xrangeの代わりに使用してみてくださいrange

数十万の要素を持つリストを使用すると遅くなるように見えることにも注意してください。可能であれば、最終的にはより小さなデータ サンプルを使用してみてください

于 2012-12-10T11:51:16.457 に答える