Я хочу увидеть исходный код класса dtype от numpy.
"import numpy as np" "i = np.dtype(int32)"
Я вижу документ numpy:
https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.dtype.html
У меня есть поиск по исходному коду numpy:
https://github.com/numpy/numpy/tree/master/numpy/core
но я не могу найти исходный код dtype. Я хочу знать фактический код, который будет запущен, когда мы напишем np.dtype(int32). Я знаю немного о расширении Python с кодом C (Swing Cython.etc), и я знаю, что multiarray.pyd - это dll /, поэтому пишите с помощью c.but, но я не могу найти интерфейс метода dtype в исходном коде C multiarray.
np.dtype(int32)
И я нахожу некоторый интерфейс метода через это:
https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray/methods.c
Но не найти интерфейс dtype! Может кто-нибудь показать способ, как найти исходный код, когда мы запускаем np.dtype(int32)?
спасибо.
Определение dtype:
PyArray_Descr https://github.com/numpy/numpy/blob/master/numpy/core/include/numpy/ndarraytypes.h: 660
Где код выполняет np.dtype (int32):
PyArray_DescrConverter https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray/descriptor.c: 1353
Цитата из комментариев PyArray_DescrConverter:
Это центральный код, который преобразует объекты Python в Объекты дескрипторов типов, которые используются в numpy.
По заданному объекту определить dtype. т.е. np.array (что-то) PyArray_DTypeFromObject https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray/common.c: 104
Как я нашел эту информацию? Клонировал репо, использовал egrep. Сначала искал "dtype". Часто встречается с типом данных "PyArray_Descr". Поиск "PyArray_Descr" нашел определение в заголовке и много поисковых запросов. Уточненный поиск с помощью PyArray_DescrNew, который выглядел более интересным, нашел две интересующие функции, посмотрев на более общие именованные файлы.