我需要使用 numpy 将数组写入文件,并且我尝试读取数组作为原始输入并将其转换为数组。我的问题似乎来自线路
inarray = np.array(inlist)
,因为代码不返回数组。
这是我的完整代码:
import numpy as np
def write():
inlist = raw_input('Please enter a square array of booleans.')
print inlist
inarray = np.array(inlist)
print inarray
dims = inarray.shape
print dims
dim = dims[0]
name = open(name,'w')
name.write(dims)
dimint = int(dim)
i = 0
while i < dimint:
name.write(inarray[i])
i = i+1
return name
write()
最佳答案
raw_input
返回一个字符串。如果将此字符串直接提供给 np.array,您将得到一个 NumPy 标量:
In [17]: np.array('foo')
Out[17]:
array('foo',
dtype='|S3')
In [18]: np.array('abl').shape
Out[18]: ()
In [19]: np.array('abl').dtype
Out[19]: dtype('|S3')
<小时/>
您需要先将字符串转换为 Python 对象,例如列表列表,然后再将其提供给 np.array
。
import ast
inarray = np.array(ast.literal_eval(inlist))
关于python - 如何从 python 中的原始输入创建 numpy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15730568/