我具有属于一个人的两个属性age(浮动)和name(字符串)。我想将它们写入csv文件,因此,我使用numpy存储数据,然后将其写入csv。
import numpy as np
import random
age_name = np.empty((2, 10))
print (age_name.shape)
for i in range (10):
age = random.randint(0,100)
name = 'ABC'
age_name[0,i]=age
age_name[1,i]=name
print (age_name)
我得到了错误
回溯(最近通话最近): 在第9行输入文件“ python” ValueError:无法将字符串转换为float:'ABC'
这不是一个好的选择,因为数据同时具有字符串和浮点数,您能给我建议一种易于存储到csv文件的好方法吗?
答案 0 :(得分:3)
较早版本的numpy具有chararrays和numarrays,但是现在您只需传递dtype来告诉numpy,该数组需要包含的不仅仅是数字。使用dtype = str每个元素只需要一个字符串,因此您将获得“ a”,“ a”,“ a” ...,而不是整个字符串“ abc”。为此,您将object
作为dtype。
import numpy as np
import random
age_name = np.zeros((2, 10), dtype=object)
print (age_name)
for i in range (10):
age = random.randint(0,100)
name = 'ABC'
age_name[0,i]=age
age_name[1,i]=name
print (age_name)
>>>[[0 0 0 0 0 0 0 0 0 0]
>>> [0 0 0 0 0 0 0 0 0 0]]
>>>[[24 67 72 59 44 4 71 16 17 82]
>>> ['ABC' 'ABC' 'ABC' 'ABC' 'ABC' 'ABC' 'ABC' 'ABC' 'ABC' 'ABC']]