Numpy: '

Dibuat pada 8 Nov 2018  ·  4Komentar  ·  Sumber: numpy/numpy

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'

Komentar yang paling membantu

Coba threshold=sys.maxsize sebagai gantinya, threshold didokumentasikan sebagai int .

Semua 4 komentar

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'.

Coba threshold=sys.maxsize sebagai gantinya, threshold didokumentasikan sebagai int .

Terima kasih! yang bekerja dengan sangat baik.
Memang, masalah muncul dengan mengikuti tautan SO yang disebutkan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat