Типы данных Python кодируют полную таблицу или ресурс - PullRequest
0 голосов
/ 07 ноября 2019

Сегодня и несколько раз я получал сообщение об ошибке, подобное этому:

{TypeError}ufunc subtract cannot use operands with types dtype('<M8[us]') and dtype('O').

В другие дни я хотел бы выполнить команду типа printf и бытьпотеря, символ которой обозначал какой-то тупой тип данных (например, восьмеричное значение со знаком).

Мне всегда было трудно найти определения того, что теперь я назвал «кодами типа» или «строками типа протокола массива» в первом примере, и меня не путали со строкой «printf-style»Форматирование символов преобразования "как в последнем случае, так как они представляют собой отдельные символы со строковыми литеральными кавычками, и, таким образом, поиск их в Google - просто беспорядок или попытка найти синонимы для слова, которое я не знал. Может быть, я просто плох в RegEx и не могу достаточно хорошо ориентироваться в man-страницах, но я просто хотел задать вопрос, на который, возможно, отвечаю сам, чтобы пометить кучу синонимов для вещей, которые я пытался найти, и в конце концовприземлился на код типа. Я знал, что искал типы данных Python или NumPy и долгое время искал в интернете dtype('<M8[us]'), поэтому подумал, что помогу тем, кто оказался в подобной ситуации, предоставив потенциальную онлайн-закладку.

Я уже читал о различных типах данных и об этом синтаксисе в прошлом из различных источников, зная о символе с прямым порядком байтов '<', что '8' как-то связано с размером, но изменитсяв зависимости от типа d, но я понятия не имел, что определяли «М» или «[нас]». В своей поздней ночной глупости я просмотрел документацию numpy и python, но обе они были для более ранней версии, чем у меня была в моем текущем env, и похоже, что эта буква «M» не появлялась до недавнего времени, поэтому мне пришлось думать обо всех таблицахдокументы не были исчерпывающими, и было какое-то другое Unix или C-основанное определение всех этих кодов типов (которое я до сих пор не исключил, но предположим, что это не тот случай, когда я нашел 'M' в моем текущем Numpyверсия документа). </p>

Я размещу различные ресурсы, которые я нашел в отношении этих различных кодов типов, в python и связанных с ними библиотеках, но я уверен, что их гораздо больше, поэтому приветствую другие дополнения / изменения. Я добавлю все свои ссылки в качестве ответа, и кто знает, если другие также окажутся в такой ситуации, возможно, я сделаю шпаргалку с кодом типа или что-то в качестве общего ресурса где-нибудь в Интернете. В любом случае, я думаю, что было бы полезно собрать их в месте, помеченном набором ключевых слов, которые я использовал, пытаясь найти их, но безрезультатно: краткие определения типов данных python numpy, сокращения dtype python numpy, коды dtype массивов pythonи т. д. Если у вас есть какие-либо другие слова, которые вам приходят на ум при маркировке этих не Google-терминов, не стесняйтесь редактировать и добавлять.

1 Ответ

0 голосов
/ 07 ноября 2019

Общие примечания:

  • Убедитесь, что вы читаете документацию для правильной версии python, numpy и т. Д.
  • Используемые коды зависят от варианта использования (т. Е. Numpyстроки типа протокола массива отличаются от тех, которые используются для определения типов в общих массивах python)
  • Еще хуже, некоторые из одних и тех же символов используются для обозначения разных вещей в зависимости от варианта использования ('b' и 'B 'например, если вы сравниваете массивы numpy и python, или' d ', если сравниваете python printf и коды массивов).

Numpy 1.17 : строки типа протокола массива и тип 'M'

Python 3.8.0 : типы преобразования printf

Python 3.8.0 Коды типа массива. Изменить: этот класс используется не часто, но просто хотел здесь для сравнительного и исчерпывающего ссылки.

Python 3.8.0 строковый форматер "mini language" синтаксис, он же "типы представлений"

Я не буду повторять документы, несмотря на мой ответв первую очередь это ссылки, так как я не ожидаю, что документы скоро выйдут из строя, но основной смысл того, как я сюда попал, 'M' обозначает тип datetime в numpy и '[us]' был для микросекундного разрешения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...