【问题标题】:Numpy array from int to float从 int 到 float 的 Numpy 数组
【发布时间】: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


【解决方案1】:

numpy.median() 没有参数dtype。这是它的输出行为:

返回: 中位数:ndarray

保存结果的新数组(除非指定了 out,在这种情况下,将返回该数组)。 如果输入包含整数或精度小于 64 的浮点数,则输出数据类型为 float64。否则,输出数据类型与输入数据类型相同。

【讨论】:

    猜你喜欢
    • 2012-06-08
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 2011-10-11
    相关资源
    最近更新 更多