eclipse-python数据转换的一个问题,关于isfinite( )函数的输入参数

问题描述

python数据转换的一个问题,关于isfinite( )函数的输入参数 20C
Eclipse 上运行的python2.7 控制台,从数据库里读出数据并调用函数处理

cursor.execute(sqlorder)val=np.array(cursor.fetchall())hw=np.size(val axis=0)np.size(val axis=1)#val1=np.zeros((hw))       for i in np.arange(0h):    for j in np.arange(0w):        #val[i][j]=np.float64(val[i][j])        val[i][j]=np.float64(val[i][j])  isfinite(val)

val是从数据库里读出的矩阵,元素类型是Decimal,如下
[[Decimal('0.732905') Decimal('0.584379') Decimal('0.522045') ...
Decimal('0.359959') Decimal('182.000000') Decimal('39.195782')]
[Decimal('0.721627') Decimal('0.595321') Decimal('0.515621') ...
Decimal('0.353361') Decimal('202.000000') Decimal('50.023821')]
[Decimal('0.744268') Decimal('0.592377') Decimal('0.430369') ...
Decimal('0.346210') Decimal('283.000000') Decimal('58.231160')]
...
[Decimal('0.756491') Decimal('0.571471') Decimal('0.514521') ...
Decimal('0.358508') Decimal('182.000000') Decimal('43.042124')]
[Decimal('0.773865') Decimal('0.577030') Decimal('0.514938') ...
Decimal('0.357403') Decimal('182.000000') Decimal('42.431174')]
[Decimal('0.760719') Decimal('0.573509') Decimal('0.509935') ...
Decimal('0.356843') Decimal('182.000000') Decimal('39.920126')]]

强制转换为float64之后调用isfinite()来判断是否有无穷大数,
转换后val=
[[0.73290500000000003 0.58437899999999998 0.52204499999999998 ...
0.35995899999999997 182.0 39.195782000000001]
[0.72162700000000002 0.59532099999999999 0.515621 ... 0.35336099999999998
202.0 50.023820999999998]
[0.74426800000000004 0.59237700000000004 0.430369 ... 0.34621000000000002
283.0 58.231160000000003]
...
[0.75649100000000002 0.57147099999999995 0.51452100000000001 ...
0.35850799999999999 182.0 43.042124000000001]
[0.77386500000000003 0.57703000000000004 0.51493800000000001 ...
0.35740300000000003 182.0 42.431173999999999]
[0.76071900000000003 0.57350900000000005 0.50993500000000003 ...
0.35684300000000002 182.0 39.920126000000003]]
在当前位置上转换后,调用isfinite()出现如下错误:
TypeError: ufunc 'isfinite' not supported for the input types and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
显示不支持该数据类型

重新开辟空间转换,

 cursor.execute(sqlorder)val=np.array(cursor.fetchall())hw=np.size(val axis=0)np.size(val axis=1)val1=np.zeros((hw))       for i in np.arange(0h):    for j in np.arange(0w):        val1[i][j]=np.float64(val[i][j])        #val[i][j]=np.float64(val[i][j])  isfinite(val1)

结果如下:val1=
[[ 0.732905 0.584379 0.522045 ... 0.359959 182. 39.195782]
[ 0.721627 0.595321 0.515621 ... 0.353361 202. 50.023821]
[ 0.744268 0.592377 0.430369 ... 0.34621 283. 58.23116 ]
...
[ 0.756491 0.571471 0.514521 ... 0.358508 182. 43.042124]
[ 0.773865 0.57703 0.514938 ... 0.357403 182. 42.431174]
[ 0.760719 0.573509 0.509935 ... 0.356843 182. 39.920126]]

val1调用isfinite可以成功

val 和val1的类型以及子元素的类型如下

除了转换精度和位置实在看不出区别,怀疑有底层机制制约,但是没有查到相应资料

解决方案

数据转换问题
python数据转换

时间: 2024-09-10 19:33:35

eclipse-python数据转换的一个问题,关于isfinite( )函数的输入参数的相关文章

java 面试中的一道编写一个截取字符串的函数!!!!

函数|字符串 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串. 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个". package string;class SplitString { private String str; private int byteNum; publi

Python随机生成一个6位的验证码代码分享

 这篇文章主要介绍了Python随机生成一个6位的验证码代码分享,本文直接给出代码实例,需要的朋友可以参考下     1. 生成源码   代码如下: # -*- coding: utf-8 -*-   import random def generate_verification_code(): ''' 随机生成6位的验证码 ''' code_list = [] for i in range(10): # 0-9数字 code_list.append(str(i)) for i in range

Python写的一个简单监控系统

  这篇文章主要介绍了Python写的一个简单监控系统,本文讲解了详细的编码步骤,并给给出相应的实现代码,需要的朋友可以参考下 市面上有很多开源的监控系统:Cacti.nagios.zabbix.感觉都不符合我的需求,为什么不自己做一个呢 用Python两个小时徒手撸了一个简易的监控系统,给大家分享一下,希望能对大家有所启发 首先数据库建表 建立一个数据库"falcon",建表语句如下: ? 1 2 3 4 5 6 7 8 9 10 11 CREATE TABLE `stat` ( `

python通过定义一个类实例作为ftp回调方法

  本文实例讲述了python通过定义一个类实例作为ftp回调方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 class Writer: def __init__(self, file): self.f = open(file, "w") def __call__(self, data): self.f.write(data) self.f.write('n') print data FILENAME = "AutoI

python-初学Python,问一个关于数组取值的问题

问题描述 初学Python,问一个关于数组取值的问题 定义了一个tuple,初始化: name=('ada','bob','jack') 为什么取数组值的时候会报错? name(1) 解决方案 认真点,虽然你定义的不是list,是tuple,但是取值的时候还是要用name[1],而不是name(1). 解决方案二: 定义是定义,但是取值,有自己的语法规范name[1].不需要跟他爸爸长一样的.( )

python 怎么实现一个excel表中,多个sheet中数据相加?

问题描述 python 怎么实现一个excel表中,多个sheet中数据相加? 把多个sheet中对应单元格中的数据相加,求大神帮忙,谢谢 我有一个excel,其中有多个单元格,现在需要把所有sheet中对应单元格的数据相加. 解决方案 你读取每个字段的数据,然后加法不就可以了. 或者直接yexcel自带的sum 解决方案二: import xlrd def readExcel(excelFile): sum = 0 book = xlrd.open_workbook(excelFile) fo

python 线程的一个小问题

问题描述 python 线程的一个小问题 源代码如下: import threadfrom time import sleep ctimeloops = [4 2]def loop(nloop nsec lock): print 'start loop' nloop ' at: ' ctime() sleep(nsec) print 'loop' nloop 'at: ' ctime() lock.release()def main(): print 'starting at: ' ctime(

【求助】用Python写出一个遍历网站所有url的小工具

问题描述 [求助]用Python写出一个遍历网站所有url的小工具 用Python 怎么写出一个 遍历网站所有url的小工具, 包括首页的url和所有子网页url 不能有重复的url,我自己写的只能遍历一个网页的 首页,子网页的遍历不出来,新人 没币 ,求好心人帮助!!! 解决方案 http://www.cnblogs.com/fnng/p/3576154.htmlhttp://www.oschina.net/code/list_releted_codes?id=25402 解决方案二: htt

eclipse开发Hbase的一个小程序,但是出现下面一些问题,请求大神赐教

问题描述 eclipse开发Hbase的一个小程序,但是出现下面一些问题,请求大神赐教 代码: import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import