SKlearning大部分的输入数据都是M * N数组.

然而我们从数据库或文件读取得来的通常是Python内定的类型tuple或list

它们的优势就不说了,但是直接把list或tuple构成的二维数组传入scikit是会出问题的.

如:

DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and will raise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.
DeprecationWarning)

下面贴上如何把list/tuple转为scikit使用的array

首先, 准备数据如下:

读取一行数据变为一维数组

    conn = sql.connect('result_sale.db')
conn.text_factory = str
dataSet = conn.execute('select * from sampleData')
tpRows = dataSet.fetchone()
conn.close()
print type(tpRows)
print tpRows lstRows = list(tpRows)
aryRows1 = np.array(lstRows) # 转成数组
#aryRows2 = np.array(lstRows).reshape(1, -1) # 转成1行N列 (二维数组)
#aryRows3 = np.array(lstRows).reshape(-1, 1) # 转成N行1列 (二维数组)
print lstRows
print aryRows1

输入如下: 请留意输入的不同点 :)

('00', '01', '02', '03', '04', '05', '06', '07', '08')  (tuple)
['00', '01', '02', '03', '04', '05', '06', '07', '08'] (list)
['00' '01' '02' '03' '04' '05' '06' '07' '08'] (array) Process finished with exit code 0

一次性转换整个数据集

    conn = sql.connect('result_sale.db')
conn.text_factory = str
dataSet = conn.execute('select * from sampleData')
tpRows = dataSet.fetchall()
conn.close() aryRows1 = np.array(tpRows) # 转成数组
#aryRows2 = np.array(tpRows).reshape(1, -1) # 转成1行N列 (二维数组)
#aryRows3 = np.array(tpRows).reshape(-1, 1) # 转成N行1列 (二维数组)
print aryRows1
#print aryRows2
#print aryRows3

输入如下:

[['00' '01' '02' '03' '04' '05' '06' '07' '08']
['10' '11' '12' '13' '14' '15' '16' '17' '18']
['20' '21' '22' '23' '24' '25' '26' '27' '28']
['30' '31' '32' '33' '34' '35' '36' '37' '38']
['40' '41' '42' '43' '44' '45' '46' '47' '48']
['50' '51' '52' '53' '54' '55' '56' '57' '58']
['60' '61' '62' '63' '64' '65' '66' '67' '68']
['70' '71' '72' '73' '74' '75' '76' '77' '78']
['80' '81' '82' '83' '84' '85' '86' '87' '88']] Process finished with exit code 0

逐条纪录转换, 可以用下标来引用数组

    conn = sql.connect('result_sale.db')
conn.text_factory = str
dataSet = conn.execute('select * from sampleData')
tpRows = dataSet.fetchall()
conn.close() #aryRows = np.zeros([len(tpRows), len(tpRows[0])])
aryRows = np.ones_like(tpRows) #亦可使用 empty, empty_like, zeros, zeros_like 等方法 j=0
for row in tpRows:
aryRows[j][:] = row
j += 1
print aryRows

输入如下:

[['00' '01' '02' '03' '04' '05' '06' '07' '08']
['10' '11' '12' '13' '14' '15' '16' '17' '18']
['20' '21' '22' '23' '24' '25' '26' '27' '28']
['30' '31' '32' '33' '34' '35' '36' '37' '38']
['40' '41' '42' '43' '44' '45' '46' '47' '48']
['50' '51' '52' '53' '54' '55' '56' '57' '58']
['60' '61' '62' '63' '64' '65' '66' '67' '68']
['70' '71' '72' '73' '74' '75' '76' '77' '78']
['80' '81' '82' '83' '84' '85' '86' '87' '88']] Process finished with exit code 0

List tuple 类型转成数组的更多相关文章

  1. PHP将对象转换成数组的方法(兼容多维数组类型)

    /** * @author gayayang * @date 2012-8-21 * @todo 将对象转换成数组 * @param unknown_type $obj * @return unkno ...

  2. python学习第五天 List和tuple类型介绍及其List切片

    List 和tuple: python提供一种类似C语言数组的类型,但是使用起来确是相当的简洁.那就讲讲这神奇的python中list 和tuple吧. List类型: 1.直接贴代码: L = [' ...

  3. 从jquery源码中看类型判断和数组的一些操作

    在深入看jquery源码中,大家会发现源码写的相当巧妙.那我今天也通过几个源码中用到的技巧来抛砖引玉,希望大家能共同研究源码之精华,不要囫囵吞枣. 1.将类数组转化成数组 我想大家首先想到的方法是fo ...

  4. oracle根据分隔符将字符串分割成数组函数

    --创建表类型 create or replace type mytype as table of number;--如果定义成varchar--CREATE OR REPLACE type myty ...

  5. 黄聪:PHP字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、切割成数组等)

    一.字符串替换 str_replace("iwind", "kiki", "i love iwind, iwind said"); 将输出 ...

  6. 将COleDateTime类型数据转换成char *数据

    用OpenCV做多摄像头校准时间,在图像上显示时间信息,需求要将COleDateTime类型数据转换成char *数据 具体代码如下: 1: COleDateTime m_checkDate; 2: ...

  7. Yii Active Record 查询结果转化成数组

    使用Yii 的Active Record 来获取查询结果的时候,返回的结果集是一个对象类型的,有时候为了数据处理的方便希望能够转成数组返回.比如下面的方法: // 查找满足指定条件的结果中的第一行 $ ...

  8. js 判断是否为数组的方式 及 类数组转换成数组格式

    1. 判断是否为数组的通用方式 Object.prototype.toString.call(o)=='[object Array]' 其他方式: typeof ,  instanceof,  ary ...

  9. .net 4.0 中的特性总结(四):Tuple类型

    Tuple是具有指定数量和顺序的值的一种数据结构.针对这种数据结构,.Net4.0中提供了一组Tuple类型,具体如下: Tuple   Tuple<T>   Tuple<T1, T ...

随机推荐

  1. (转载)构建public APIs与CORS

    from: https://segmentfault.com/a/1190000000709909 理由:在操作层面详细的讲解了跨域的操作.尤其是对于option请求的详解.收藏. 在构建Public ...

  2. failover机制的小讨论

    对于一个7*24小时无间断的线上服务来说,在服役时间内难免会遇到一些fail,例如db断开连接且短暂连接不上了, 下游的某个节点忽然挂了,运维部署上依赖的某一个东西不存在了等等场景.本文主要来讨论一下 ...

  3. HTML中嵌入pdf的简单方法

    <embed src="> 或者你不想显示某些功能的话: <embed src=">

  4. 好股Android客户端开发

    按比例排列      TextView 文字对齐 webview和js之间的交互      在WebView中如何让JS与Java安全地相互调用 Android Http请求方法汇总          ...

  5. Oracle学习总结_day03_day04_条件查询_排序_函数_子查询

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day03_条件查询_排序_函数 清空回收站: PUR ...

  6. 3、Python字符串和循环

    1.while循环 #猜lucky_number = 6 #如果比6大,提示你猜的大了 #如果比6小,提示你猜的小了 #猜的等于6,提示Bingo #限制3次 lucky_num = 6 count ...

  7. ABP之模块分析

    本篇作为我ABP介绍的第三篇文章,这次想讲下模块的,ABP文档已经有模块这方面的介绍,但是它只讲到如何使用模块,我想详细讲解下它模块的设计思路. ABP 框架提供了创建和组装模块的基础,一个模块能够依 ...

  8. 不明显的多线程编程的具体Bugs

    我们都知道,在编写多线程程序时,我们应该记住很多细节,比如锁,使用线程安全库等.这里有一个不太明显的bug的列表,特定于多线程程序.其中许多都没有在初学者的文档或教程中提到,但我认为每个使用线程的人最 ...

  9. JavaScript闭包理解【关键字:普通函数、闭包、解决获取元素标签索引】

    以前总觉得闭包很抽象,很难理解,所以百度一下"闭包"概览,百度的解释是:“闭包是指可以包含自由(未绑定到特定对象)变量的代码块:这些变量不是在这个代码块内或者任何全局上下文中定义的 ...

  10. 如何合理优化WEB前端 高效提升WEB前端性能

    对前端开发工程师来说,前端性能优化的重要性是不言而喻的,最为大家所知的是YSLOW的23条优化规则,在我的理解中,性能优化不纯粹是指用户访问网站的速度,也包括开发的效率,这里我总结下我理解中的WEB前 ...