【发布时间】:2019-07-10 23:43:33
【问题描述】:
我有这段代码可以从 csv 中提取一些数据。我可以毫无问题地提取数据,但我想将 numpy 数组从 int 更改为 float。我知道这样做的论点是dtype=np.float32,但是当我包含这个论点时,我一直收到一条错误消息:
这是代码:
import numpy as np
import pandas as pd
rainfall=pd.read_csv('Seattle2014.csv')['PRCP'].values
inches=rainfall / 254
inches.shape
#...
rainy=(inches >0)
summer=(np.arange(365)-172<90) &(np.arange(365)-172>0)
print ("Mediam precipitation on rainy days in 2014 (inches): ",np.median(inches[rainy]))
print ("Mediam precipitation on summer days in 2014 (inches): ",np.median(inches[summer]))
print ("Maximum precipitation on summer days in 2014 (inches): ",np.max(inches[summer]))
print ("Median precipitation on non-summer days in 2014 (inches): ",np.median(inches[rainy & ~summer]))
这是带有参数的代码:
rainy=(inches >0)
summer=(np.arange(365)-172<90) &(np.arange(365)-172>0)
print ("Mediam precipitation on rainy days in 2014 (inches): ",np.median(inches[rainy], dtype=float))
我确实收到此错误消息:
TypeErrorTraceback (most recent call last) <ipython-input-136-29b7a435cc0e> in <module>()
1 rainy=(inches >0)
2 summer=(np.arange(365)-172<90) &(np.arange(365)-172>0)
----> 3 print ("Mediam precipitation on rainy days in 2014 (inches): ",np.median(inches[rainy], dtype=float))
4 print ("Mediam precipitation on summer days in 2014 (inches): ",np.median(inches[summer]))
5 print ("Maximum precipitation on summer days in 2014 (inches): ",np.max(inches[summer]))
TypeError: median() got an unexpected keyword argument 'dtype'
我该如何解决这个问题?
【问题讨论】:
-
显然去掉 dtype 参数
-
"我知道这样做的参数是 dtype=np.float32" 不---这是在您创建数组时指定类型的参数。中值函数没有这样的关键字参数,如docs 所示。无论如何,它是一个单一的元素,对吗?只需使用
float(...)。 -
此外,由于您最初从 pandas 读取数据帧,因此还不清楚为什么要使用 numpy 进行操作。只需在数据帧上使用
.median()和.max()等方法吗?无论如何,您都可以打印您选择的任何表示形式。 -
@AlexanderReynolds 我正在尝试遵循“Python 数据科学手册”中的一个练习,该练习从第 70 页开始,一直到第 74-76 页。 csv 文件是从与本书相关的 github 页面下载的。在书中,解决方案以浮点数表示,但当我这样做时,我得到整数。我一定是缺少什么,或者这本书使用的 csv 文件与 github 中的不同。
-
直接把降雨数据改成浮动怎么样:
rainfall=pd.read_csv('Seattle2014.csv')['PRCP'].values.astype(np.float)
标签: python python-2.7 numpy