Присвоение числовому структурированному массиву - PullRequest
0 голосов
/ 19 сентября 2018

Как назначить numy структурированные массивы?

import numpy as np

baz_dtype = np.dtype([("baz1", "str"),
                      ("baz2", "uint16"),
                      ("baz3", np.float32)])
dtype = np.dtype([("foo", "str"),
                  ("bar", "uint16"),
                  ("baz", baz_dtype)])
xx = np.zeros(2, dtype=dtype)
xx["foo"][0] = "A"

Здесь xx остается без изменений.Документы https://docs.scipy.org/doc/numpy/user/basics.rec.html немного расплывчаты по этому вопросу.

Можно ли в одном примечании сделать один или несколько подтипов списками или массивами с указанным типом dtype?

Любые советы приветствуются.

1 Ответ

0 голосов
/ 19 сентября 2018

Вы выполняете задание правильно.Часть, которую вы испортили, это dtypes .Типы строк NumPy имеют фиксированный размер, и если вы попытаетесь использовать "str" в качестве типа d, он будет рассматриваться как размер 0 - пустая строка является единственным возможным значением!Ваш "A" усекается до 0 символов, чтобы соответствовать.

Укажите размер - например, 'S10' - это 10-байтовые строки байтов или 'U10' - это строки юникода с 10 кодами - или используйте object для хранения обычных строковых объектов Python и исключения ограничений по длине и обработки '\0' как нулевого терминатора.

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