Joh*_*ohn 1 python csv numpy python-3.x
我有两个属于一个人的属性年龄(浮点)和姓名(字符串)。我想将它们写入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)
Run Code Online (Sandbox Code Playgroud)
我收到错误
回溯(最近一次调用最后一次):文件“python”,第 9 行,在 ValueError:无法将字符串转换为浮点数:'ABC'
这可能不是一个好的选择,因为数据既有字符串又有浮点数,你能给我建议一种可以轻松存储到 csv 文件的好方法吗?
小智 5
旧版本的 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']]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2100 次 |
| 最近记录: |