Saya cukup yakin bahwa berikut ini adalah bug, tapi tolong beri tahu saya jika tidak. Sebuah solusi akan sangat dihargai.
Saya melakukan pengkodean panas standar melalui SCKlearn, dan jelas menggunakan Numpy dalam prosesnya. Tidak apa-apa ketika saya membiarkan opsi cetak sebagai default, tetapi ketika saya menggunakan fungsi numpy.set_printoptions(threshold='nan')
untuk mencetak keseluruhan dari satu larik penyandian panas (bukan ringkasan Numpy) saya mendapatkan kesalahan dalam judul masalah. Berikut adalah kode dan laporan kesalahan/Traceback yang sesuai:
import numpy
from numpy import array
from numpy import argmax
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder
data = "+++++++++QVQLVQSGGGVVQPGRSLRLSCAASGFTFSSHRMHWVRQAPGKGLEWVAAVSNDGSNEYYADSVKGRFTISRDKSTSTLYLQMDSLRPEDTAVYYCARERCVSSSCWARALDYWGQGSLVTVCS++++++++++"
seq_string = list(data)
print(seq_string)
values = array(seq_string)
print(values)
label_encoder = LabelEncoder()
integer_encoded = label_encoder.fit_transform(values)
print(integer_encoded)
onehot_encoder = OneHotEncoder(sparse=False)
integer_encoded = integer_encoded.reshape(len(integer_encoded), 1)
onehot_encoded = onehot_encoder.fit_transform(integer_encoded)
numpy.set_printoptions(threshold='nan')
print(onehot_encoded)
inverted = label_encoder.inverse_transform([argmax(onehot_encoded[1, :])])
print(inverted)
> ---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-1-43683b44d2e3> in <module>()
24 onehot_encoded = onehot_encoder.fit_transform(integer_encoded)
25 numpy.set_printoptions(threshold='nan')
---> 26 print(onehot_encoded)
27 # invert first example
28 inverted = label_encoder.inverse_transform([argmax(onehot_encoded[1, :])])
/d/harpy1/s/python/v3-5.1.0/lib/python3.6/site-packages/numpy/core/arrayprint.py in array_str(a, max_line_width, precision, suppress_small)
1400 return str(a[()])
1401
-> 1402 return array2string(a, max_line_width, precision, suppress_small, ' ', "")
1403
1404 def set_string_function(f, repr=True):
/d/harpy1/s/python/v3-5.1.0/lib/python3.6/site-packages/numpy/core/arrayprint.py in array2string(a, max_line_width, precision, suppress_small, separator, prefix, style, formatter, threshold, edgeitems, sign, floatmode, suffix, **kwarg)
620 return "[]"
621
--> 622 return _array2string(a, options, separator, prefix)
623
624
/d/harpy1/s/python/v3-5.1.0/lib/python3.6/site-packages/numpy/core/arrayprint.py in wrapper(self, *args, **kwargs)
420 repr_running.add(key)
421 try:
--> 422 return f(self, *args, **kwargs)
423 finally:
424 repr_running.discard(key)
/d/harpy1/s/python/v3-5.1.0/lib/python3.6/site-packages/numpy/core/arrayprint.py in _array2string(a, options, separator, prefix)
435 data = asarray(a)
436
--> 437 if a.size > options['threshold']:
438 summary_insert = "..."
439 data = _leading_trailing(data, options['edgeitems'])
TypeError: '>' not supported between instances of 'int' and 'str'
Coba threshold=sys.maxsize
sebagai gantinya, threshold
didokumentasikan sebagai int
.
Mungkin kita harus mulai melemparkan pengecualian di 1.16 ketika orang-orang meneruskan string "nan", untuk mempersiapkan mereka untuk python 3?
Sayangnya stackoverflow merekomendasikan melewati 'nan'.
Tautan ke SO informasi yang salah: https://stackoverflow.com/questions/1987694/how-to-print-the-full-numpy-array
Coba
threshold=sys.maxsize
sebagai gantinya,threshold
didokumentasikan sebagaiint
.
Terima kasih! yang bekerja dengan sangat baik.
Memang, masalah muncul dengan mengikuti tautan SO yang disebutkan.
Komentar yang paling membantu
Coba
threshold=sys.maxsize
sebagai gantinya,threshold
didokumentasikan sebagaiint
.