<p>numpy.int64 bukan turunan dari int</p>

Dibuat pada 27 Jan 2013  ·  4Komentar  ·  Sumber: numpy/numpy

Seperti yang dilaporkan dalam xlwt :

Berikut ini adalah pemeriksaan perilaku numpy (Python 2.7.3, numpy 1.6.2)

>>> import numpy
>>> data = [t(123456) for t in (numpy.int32, numpy.int64, numpy.float64)]
>>> [type(d) for d in data]
[<type 'numpy.int32'>, <type 'numpy.int64'>, <type 'numpy.float64'>]
>>> data
[123456, 123456, 123456.0]
>>> check_types = (int, long, float)
>>> for d in data:
...     for c in check_types:
...         print type(d), repr(c), isinstance(d, c)
...
<type 'numpy.int32'> <type 'int'> True
<type 'numpy.int32'> <type 'long'> False
<type 'numpy.int32'> <type 'float'> False
<type 'numpy.int64'> <type 'int'> False
<type 'numpy.int64'> <type 'long'> False
<type 'numpy.int64'> <type 'float'> False
<type 'numpy.float64'> <type 'int'> False
<type 'numpy.float64'> <type 'long'> False
<type 'numpy.float64'> <type 'float'> True
>>>

Sepertinya numpy telah melakukan pekerjaan untuk membuat int32 dan float64 dikenali oleh perangkat lunak lain tetapi tidak int64.

Proposal numpy.core

Komentar yang paling membantu

Ini benar -- python 'int' adalah 32 atau 64 bit (tergantung pada Anda
membangun; Anda menggunakan python 32-bit), jadi np.int32 atau np.int64
berasal dari itu. np.float32 juga bukan turunan dari 'float', karena
demikian pula Python 'float' secara khusus disimpan dalam presisi ganda.

(Benar-benar bahkan ini konyol karena numpy ints _aren't_ instance dari 'int'
atau 'mengambang', tapi terserah.)

isinstance(..., int) adalah alat yang salah untuk apa yang Anda coba lakukan. Jika kamu
ingin mendeteksi bilangan bulat secara umum menggunakan tipe numpy, hal paling sederhana untuk
lakukan adalah isinstance(..., np.integer).

Pada Sabtu, 26 Januari 2013 pukul 20:15, Daniel Vianna [email protected] menulis :

Seperti yang dilaporkan dalam xlwt https://github.com/python-excel/xlwt/issues/15 :

Berikut ini adalah pemeriksaan perilaku numpy (Python 2.7.3, numpy 1.6.2)

import numpy>>> data = [t(123456) untuk t di (numpy.int32, numpy.int64, numpy.float64)]>>> [type(d) untuk d di data][,,]>>> data[123456, 123456, 123456.0]>>> check_types = (int, long, float)>>> for d in data:... for c in check_ types:... print type(d), repr(c), isinstance(d, c)...benarPalsuPalsuPalsuPalsuPalsuPalsuPalsuBenar>>>

Sepertinya numpy telah melakukan pekerjaan untuk membuat int32 dan float64
dikenali oleh perangkat lunak lain tetapi tidak int64.


Balas email ini secara langsung atau lihat di Gi tHubhttps://github.com/numpy/numpy/issues/2951.

Semua 4 komentar

Ini benar -- python 'int' adalah 32 atau 64 bit (tergantung pada Anda
membangun; Anda menggunakan python 32-bit), jadi np.int32 atau np.int64
berasal dari itu. np.float32 juga bukan turunan dari 'float', karena
demikian pula Python 'float' secara khusus disimpan dalam presisi ganda.

(Benar-benar bahkan ini konyol karena numpy ints _aren't_ instance dari 'int'
atau 'mengambang', tapi terserah.)

isinstance(..., int) adalah alat yang salah untuk apa yang Anda coba lakukan. Jika kamu
ingin mendeteksi bilangan bulat secara umum menggunakan tipe numpy, hal paling sederhana untuk
lakukan adalah isinstance(..., np.integer).

Pada Sabtu, 26 Januari 2013 pukul 20:15, Daniel Vianna [email protected] menulis :

Seperti yang dilaporkan dalam xlwt https://github.com/python-excel/xlwt/issues/15 :

Berikut ini adalah pemeriksaan perilaku numpy (Python 2.7.3, numpy 1.6.2)

import numpy>>> data = [t(123456) untuk t di (numpy.int32, numpy.int64, numpy.float64)]>>> [type(d) untuk d di data][,,]>>> data[123456, 123456, 123456.0]>>> check_types = (int, long, float)>>> for d in data:... for c in check_ types:... print type(d), repr(c), isinstance(d, c)...benarPalsuPalsuPalsuPalsuPalsuPalsuPalsuBenar>>>

Sepertinya numpy telah melakukan pekerjaan untuk membuat int32 dan float64
dikenali oleh perangkat lunak lain tetapi tidak int64.


Balas email ini secara langsung atau lihat di Gi tHubhttps://github.com/numpy/numpy/issues/2951.

Juga, pada Python 3, tidak ada tipe integer Numpy yang terkait dengan tipe int asli (yang merupakan integer ukuran variabel).

Saya pikir Nathaniel sepenuhnya benar dalam catatannya tentang laporan asli. Numpy harus mewarisi/mendaftar numbers.Integral dll. yang cocok dengan pelepasan python 2.4 dan 2.5. Jika ada yang ingin pengakuan luas dari suka bilangan bulat, mereka harus memeriksa numbers.Integral (atau mungkin mencoba metode mengetik bebek __index__ yang serupa).

Pada #4547 dan 1.9.0, numpy mendaftarkan angka dengan modul angka. Menutup ini sebagai terkait.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

navytux picture navytux  ·  4Komentar

Levstyle picture Levstyle  ·  3Komentar

thouis picture thouis  ·  4Komentar

keithbriggs picture keithbriggs  ·  3Komentar

'
Pezhvuk picture Pezhvuk  ·  4Komentar