NumPy np.chararray to nd.array - PullRequest
       18

NumPy np.chararray to nd.array

2 голосов
/ 21 февраля 2020

У меня есть следующий np.chararray

array = np.chararray(shape=(5))
initialize_array(array) 
# Gives out the following array of type S1
# [b'1' b'0' b'1' b'0' b'1'] 

Как я могу преобразовать этот массив в массив nd? I wi sh для массива типа

[ 1 0 1 0 1 ] # dtype = int 

Возможно ли это с помощью какой-то функции, о которой я не знаю? Или я должен сделать это «вручную»?


Использование astype , например:

new_ndarray = array.astype("int")

Поднимает ошибку Value:

ValueError: может создавать chararray только из строковых данных.

MCVE

#!/usr/bin/python3
import numpy as np

char_array = np.chararray(shape=(5))
char_array[:] = [b'1',b'0',b'1',b'0',b'1']
nd_array = char_array.astype("int")

1 Ответ

3 голосов
/ 21 февраля 2020

Вы можете сделать:

import numpy as np
array = np.chararray(shape=(5))
array[:] = [b'1', b'0', b'1', b'0', b'1']
array_int = np.array(array, dtype=np.int32)
print(array_int)
# [1 0 1 0 1]
...