Nie przegap że istnieje ex tremely skuteczny sposób, co następuje:
import numpy as Numpy
a = Numpy.array([1,7,3,4,4,6,3,8,7,0,8])
b = Numpy.array(['1','7','3','4','4','6','3','8','7','0','8'])
c = Numpy.array([0.1,9.8,-0.4,0.0,9.8,13.7])
d = Numpy.array(['one','three','five','four','three'])
print a
print a[a!=3]
print b
print b[b!='3']
print c
print c[c!=9.8]
print d
print d[d!='three']
i masz:
>>>
[1 7 3 4 4 6 3 8 7 0 8]
[1 7 4 4 6 8 7 0 8]
['1' '7' '3' '4' '4' '6' '3' '8' '7' '0' '8']
['1' '7' '4' '4' '6' '8' '7' '0' '8']
[ 0.1 9.8 -0.4 0. 9.8 13.7]
[ 0.1 -0.4 0. 13.7]
['one' 'three' 'five' 'four' 'three']
['one' 'five' 'four']
To wydaje się być najlepszym. Jedynym zastrzeżeniem jest to, że jeśli chce on konkretnie dokonać edycji w miejscu, jeśli istnieje lista, w którym to przypadku wykonywana jest dodatkowa alokacja w porównaniu do pętli w jego pytaniu. –
Dzięki. Przypuszczam, że filtr jest o wiele szybszy, to mój początkowy wariant :) – RaSergiy
'filter + lambda' to dokładnie to, w jaki sposób _nie powinieneś robić rzeczy w pythonie. GvR: "filtr (P, S) jest prawie zawsze zapisywany jaśniej jako [x dla x w S, jeśli P (x)]" – georg