Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Numpy从字符串解析到ndarray_Python_Python 3.x_Numpy_Numpy Ndarray - Fatal编程技术网

Python Numpy从字符串解析到ndarray

Python Numpy从字符串解析到ndarray,python,python-3.x,numpy,numpy-ndarray,Python,Python 3.x,Numpy,Numpy Ndarray,我已将ndarray从服务器传递到客户端,该数组的示例如下所示 import numpy as np str_array = "[[0.1233 0.333 4.1111] [0.1233 0.333 4.1111] [0.1233 0.333 4.1111]]" arr = np.fromstring(str_array, dtype=np.float32, sep = ' ') print(arr) 当我运行该代码时,它会发出一条错误消息: File "example.py", l

我已将ndarray从服务器传递到客户端,该数组的示例如下所示

import numpy as np

str_array = "[[0.1233 0.333 4.1111] [0.1233 0.333 4.1111] [0.1233 0.333 4.1111]]"
arr = np.fromstring(str_array, dtype=np.float32, sep = ' ')

print(arr)
当我运行该代码时,它会发出一条错误消息:

  File "example.py", line 89, in <module>
    arr = np.fromstring(str_array, dtype=np.float32)
ValueError: string size must be a multiple of element size
文件“example.py”,第89行,在
arr=np.fromstring(str_数组,dtype=np.float32)
ValueError:字符串大小必须是元素大小的倍数
我希望我的字符串化数组再次成为一个数组。如何解决这个问题?

我注意到,上面说,
np.fromstring()
“返回一个新的1-D数组,该数组由原始二进制或字符串中的文本数据初始化。”

如果您知道数组的维数,那么对于数据是二维的这一事实,一个简单的解决方法就是:

str_array = str_array.replace("]", "")
str_array = str_array.replace("[", "")
np.fromstring(str_array, sep=' ').reshape(3,3)
这就产生了:

array([[0.1233, 0.333 , 4.1111],
       [0.1233, 0.333 , 4.1111],
       [0.1233, 0.333 , 4.1111]])
使用,然后重新整形

np.矩阵(str_数组)。重塑(-1,3) 矩阵([[0.1233,0.333,4.1111], [0.1233, 0.333 , 4.1111], [0.1233, 0.333 , 4.1111]]) 或使用属性获取
ndarray

np.矩阵(str_数组)。重塑(-1,3)。A 数组([[0.1233,0.333,4.1111], [0.1233, 0.333 , 4.1111], [0.1233, 0.333 , 4.1111]])
字符串化的ndarray不是为这样的解析而设计的。不要将此过程构建到代码中。我不想给出一个“竞争性”答案,但我注意到,您链接到的文档中说“不再建议使用此类,即使是线性代数。而是使用正则数组。该类将来可能会被删除。”