Изменить dtype одного столбца в массиве 2d numpy - PullRequest
5 голосов
/ 11 октября 2010

Я создаю двумерный массив, полный нулей, со следующей строкой кода:

MyNewArray=zeros([4,12],float)

Однако первый столбец необходимо будет заполнить текстовыми данными строкового типа, в то время как все остальные столбцынужно будет заполнить числовыми данными, которыми можно манипулировать математически.

Как я могу отредактировать приведенный выше код, чтобы первый столбец в матрице мог иметь строковый тип данных, сохраняя все остальные столбцы как плавающие

1 Ответ

5 голосов
/ 11 октября 2010

Возможно, вы захотите использовать структурированные массивы

MyNewArray = zeros(12, dtype='S10,f4,f4,f4')

Есть несколько способов определения структуры, здесь я определил 4 поля: один текст с 10 символами и три числа с плавающей запятой (вы можете написать число с плавающей запятой вместо f4). Важно отметить, что количество символов в массиве должно быть указано по соображениям управления памятью массива. Вы не сможете хранить строки длиннее этой максимальной длины.

На каждое поле ссылается имя поля, в этом случае будут использоваться имена полей по умолчанию от f0 до f3. Например, чтобы получить весь первый столбец (текстовый):

MyNewArray['f0']

Конечно, вы можете изменять имена полей по своему желанию.

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