Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.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转换为float32?_Python_Pandas_Numpy_Dataset - Fatal编程技术网

Python 如何将numpy转换为float32?

Python 如何将numpy转换为float32?,python,pandas,numpy,dataset,Python,Pandas,Numpy,Dataset,我有一个数据我想将其拆分并转换为float32,但它将实数显示为字符串 data = open('Path dataset') for line in data: train = np.array([np.float32(x) for x in line.split(",")[:]]) 显示给我的错误是: ---------------------------------------------------------------------------

我有一个
数据
我想将其拆分并转换为
float32
,但它将实数显示为字符串

   data = open('Path dataset')
        for line in data:
        train = np.array([np.float32(x) for x in line.split(",")[:]])
显示给我的错误是:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-83-53e8671c416d> in <module>
      1 for line in data_coba:
----> 2     train = np.array([np.float32(x) for x in line.split(",")[:]])          
      3 #print(train_test_coba)

<ipython-input-83-53e8671c416d> in <listcomp>(.0)
      1 for line in data_coba:
----> 2     train = np.array([np.float32(x) for x in line.split(",")[:]])           
      3 #print(train_test_coba)

ValueError: could not convert string to float: '50.89482266'
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在里面
1对于数据_coba中的行:
---->2列=np.数组([np.float32(x)表示行中的x.split(“,”[:]))
3.打印(列车测试coba)
英寸(.0)
1对于数据_coba中的行:
---->2列=np.数组([np.float32(x)表示行中的x.split(“,”[:]))
3.打印(列车测试coba)
ValueError:无法将字符串转换为浮点:“ï»50.89482266”

这有什么问题

您的数据集似乎包含的字符不仅仅是逗号分隔的数字。因此,当它试图将这些非数字字符转换为float32时,可能会发生错误。我建议您再次检查数据集,或许可以尝试进一步拆分数据集。

您必须在open函数中使用encoding='utf-8'

data = open('Path dataset',encoding='utf-8')

它无法解析此
ï»
以转换为float@abhilb是正确的,但我的数据是实数,它不包含任何字符串
可以使用正则表达式删除所有不需要的字符更改编码,同时将文件打开到
utf-8-sig
,即
open('Path dataset',encoding='utf-8-sig')
您被BOM击中。请看,您可能可以单独检查第行中x的
内容。拆分(“,”[:]]
作为输出提供并从那里进一步移动。当我使用此条件时,我得到此错误
ValueError:无法将字符串转换为float:“\ufeff51.45440668”
值中的“ï»表示什么?如果可以忽略这些不需要的字符,则可以替换这些字符<代码>输入:np.float32(re.sub(r'[^a-zA-Z0-9\.]',''ï»50.89482266'))输出:50.89482