python - 使用 NumPy asarray 方法将列表转换为数组

标签 python csv python-3.x numpy

我尝试从 csv 行获取平均值。我从字符串列表中的 csv 获取数据,然后使用 numpy 将其转换为数组。当我尝试绘制一些图形时,它的工作非常完美。 但是当我计算平均值时,我的数据出现了一些错误。

如果我使用 NumPy 我得到:

TypeError: cannot perform reduce with flexible type

如果我使用统计库,我会得到:

TypeError: can't convert type 'string' to numerator/denominator

如果我在 iPython 上使用命令“type”检查我的数组,我会发现它是 numpy.ndarray 类型。

我的阵列有什么问题吗?你能解释一下,为什么将 numpy.asarray 转换为 matplotlib 效果很好,但不同操作却得到错误的类型。

import csv
import numpy as np
import statistics as stat
life_exp=[]
with open('country.csv') as csvfile:
   datareader = csv.reader(csvfile)
   for row in datareader:
    if datareader.line_num!=1:
        life_exp.append(row[1])
array_life_exp = np.asarray(life_exp) 
print(stat.mean(array_life_exp))
print(np.mean(array_life_exp))

最佳答案

试试这个:

from pandas import read_csv

data = read_csv('country.csv')
print(data.iloc[:,1].mean())

此代码将您的 csv 转换为 pandas 数据框,并自动类型转换并打印第二列的平均值。

关于python - 使用 NumPy asarray 方法将列表转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30910270/

相关文章:

mysql - 插入这些数据最快的方法是什么

python - 在使用 scikit-learn 在 Pipeline 中拟合 ML 模型后,如何将准确度与 Score() 函数中的另一个性能指标交换?

python - 当已知字符串中出现的次数为 N 时,查找字符串中重复出现的术语

python - 为极坐标散点图数据点添加颜色

python - 通过双数组进行迭代和替换

azure - 数据工厂中映射数据流不会忽略 CSV 文件文本值中的换行符

python - 列表中的字符串数据到python中的数值|不可散列类型 : 'list'

c++ - 如何桥接 Python 和 C++

python - 使用 Google Drive API SDK 从 Google Drive 中删除文件

python - Pandas to_dict 不希望地修改 float