Robię matrycę przez podział punktowy w macierzy, jednak w macierzy dzielników są pewne zera. Powoduje to ostrzeżenie iw niektórych NaN. Chcę je mapować do 0, co można zrobić tak:Zastąp podział przez zero numpy
edge_map = (xy/(x_norm*y_norm))
edge_map[np.isnan(edge_map)] = 0
Jednak istnieją dwa problemy z tym, przede wszystkim, że wciąż daje ostrzeżenie (nie lubię ostrzeżenia) a po drugie wymaga to drugiego przejścia przez macierz (nie jest pewne, czy jest to nieuniknione), a wydajność jest bardzo ważna dla tej części kodu. Pomysły?
Tak więc oznaczałoby to zrobić potrzebujemy drugim przejściu żadnego pojęcia o ostrzeżeniu? –
http://stackoverflow.com/a/26248892/382936 sugeruje użycie 'numpy.errstate (divide = 'ignore')' context, aby wyłączyć ostrzeżenie. Zobacz także http://docs.scipy.org/doc/numpy/reference/generated/numpy.errstate.html#numpy.errstate –
To jest dobre pytanie. Funkcja 'where' również wyzwala ostrzeżenie w wyniku obliczenia wyniku. Maski to prawdopodobnie najlepsza opcja. – Chiel