Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.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不正确接受字符串?_Python_Numpy - Fatal编程技术网

Python Numpy不正确接受字符串?

Python Numpy不正确接受字符串?,python,numpy,Python,Numpy,我有一些CSV格式的数据(为了简单起见,我删除了一些列): 我想使用区域和舍入列中的字符串数据和差异列中的整数数据 这是我的相关代码: import sklearn import numpy as np from numpy import genfromtxt from StringIO import StringIO # Some other code... my_dtype=[('Year', int), ('Region', str),('Round', str),('Diff', i

我有一些CSV格式的数据(为了简单起见,我删除了一些列):

我想使用
区域
舍入
列中的字符串数据和
差异
列中的整数数据

这是我的相关代码:

import sklearn
import numpy as np
from numpy import genfromtxt
from StringIO import StringIO

# Some other code...

my_dtype=[('Year', int), ('Region', str),('Round', str),('Diff', int)] 
data = np.genfromtxt(my_file, delimiter=',',names=True,dtype=my_dtype)
print data
当我打印数据时,我得到以下信息。NumPy正在使每个字符串都成为空字符串

[ ( 2014, '', '', -24)
( 2010, '', '', 48)
...]

有人知道我该怎么解决这个问题吗?我是否使用了错误的dtype属性?还是别的什么?提前感谢。

不要将
str
作为文本字段的数据类型,而是使用最大字符串长度的
S
格式:

In [10]: my_dtype = [('Year', int), ('Region', 'S8'), ('Round', 'S16'), ('Diff', int)] 

In [11]: data = np.genfromtxt('regions.csv', delimiter=',', names=True, dtype=my_dtype)

In [12]: data
Out[12]: 
array([(2014, b'South', b'Second Round', -24),
       (2015, b'West', b'First Round',  48)], 
      dtype=[('Year', '<i8'), ('Region', 'S8'), ('Round', 'S16'), ('Diff', '<i8')])
In [10]: my_dtype = [('Year', int), ('Region', 'S8'), ('Round', 'S16'), ('Diff', int)] 

In [11]: data = np.genfromtxt('regions.csv', delimiter=',', names=True, dtype=my_dtype)

In [12]: data
Out[12]: 
array([(2014, b'South', b'Second Round', -24),
       (2015, b'West', b'First Round',  48)], 
      dtype=[('Year', '<i8'), ('Region', 'S8'), ('Round', 'S16'), ('Diff', '<i8')])
In [13]: data = np.genfromtxt('regions.csv', delimiter=',', names=True, dtype=None)

In [14]: data
Out[14]: 
array([(2014, b'South', b'Second Round', -24),
       (2015, b'West', b'First Round',  48)], 
      dtype=[('Year', '<i8'), ('Region', 'S5'), ('Round', 'S12'), ('Diff', '<i8')])