我有以下 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 数组?我希望有一个像这样的数组
[ 1 0 1 0 1 ] # dtype = int
这可以通过我不知道的某些功能实现吗?或者我应该“手工”完成?
使用astype,例如:
new_ndarray = array.astype("int")
引发 ValueError:
ValueError: Can only create a chararray from string data.
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")
最佳答案
你可以这样做:
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]
关于python-3.x - NumPy np.chararray 到 nd.array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60340505/