这几天由于对excel的模块使用及数据分析处理的需求,看了下pandas,分享一下。

1.pandas之numpy

1.1NumPy是Python数值计算最重要的基础包。很多都采用NumPy的数组作为构建基础。

NumPy自己并没有提供很高级的数据分析处理功能,理解NumPy数组及面向数组的计算是为了更加高效方便的使用pandas。

1.2创建ndarray

创建序列最简单就是使用array函数,举几个简单例子:

import numpy as np

my_arr = np.random.randn(2,3)

print(my_arr)

结果如下:

[[-2.30239282 -0.49235142 0.66086362]

[-1.59935706 -0.95671158 0.42411401]]

当我们输入列表转换:

L = [4,2,2.3,9,8]

my_arr = np.array(L)

print(my_arr)

结果:

[4. 2. 2.3 9. 8. ]

当我们嵌套序列:

L1 = [[4,2,3,9,8],[5,6,0,1,7]]

my_arr1 = np.array(L1)

print(my_arr1)

结果:

[[4 2 3 9 8]

[5 6 0 1 7]]

又一组等长列表(注意一定是等长)组成的列表会被转换成一个多维数组。

print(my_arr1.ndim)

print(my_arr1.shape)

结果:

2

(2, 5)

以上可以用属性ndim和shape验证,ndim返回数组的维度,shape返回各位维度大小的元祖。dtype返回数组数据类型。astype转换数组的数据类型。

问:整形数据不应该是int吗?浮点型数据不应该是float吗?

解:int32、float64是Numpy库自己的一套数据类型。

arange是Python内置函数range的数组版:

my_arr2 = np.arange(10)

print(my_arr2)

结果:

[0 1 2 3 4 5 6 7 8 9]

你可以通过ndarray的astype方法明确地将一个数组从一个dtype转换成另一个dtype;如果将浮点数转换成整数,则小数部分将会被截取删除;如果某字符串数组表示的全是数字,也可以用astype将其转换为数值形式:

实例1:

L = [4,2,3,9,8]

my_arr = np.array(L)

print(my_arr.dtype)

float_my_arr = my_arr.astype(np.float64)

print(float_my_arr.dtype)

结果:

int32

float64

实例2:

L = [4.1,2.2,3.9,9.2,8.4]

my_arr = np.array(L)

print(my_arr.dtype)

float_my_arr = my_arr.astype(np.int32)

print(float_my_arr.dtype)

print(float_my_arr)

结果:

float64

int32

[4 2 3 9 8]

实例3:

L2 = ['1.50','9.9','40','-10']

my_arr2 = np.array(L2,dtype=np.string_)

my_arr2_str = my_arr2.astype(float)

print(my_arr2_str.dtype)

print(my_arr2_str)

结果:

float64

[ 1.5 9.9 40. -10. ]

2.NumPy数组的运算

大小相等的数组之间的任何运算都会将运算应用到每个元素,例如:

L1 = [[4,2,3,9,8],[5,6,0,1,7]]

my_arr1 = np.array(L1)

print(my_arr1)

print(my_arr1 * my_arr1)

结果:

[[4 2 3 9 8]

[5 6 0 1 7]]

[[16 4 9 81 64]

[25 36 0 1 49]]

大小相同的数组之间的比较会生成布尔值数组:

L1 = [[4,2,3,9,8],[5,6,0,1,7]]

L2 = [[1,2,3,4,5],[6,7,8,9,2]]

my_arr1 = np.array(L1)

my_arr2 = np.array(L2)

print(my_arr1 > my_arr2)

结果:

[[ True False False True True]

[False False False False True]]

3.NumPy数组的切片,索引

由于此处书里内容较多,偏于很大,不做详细介绍,简单写一下。

切片索引ndarray的切片语法跟Python列表这样的一维对象差不多,直接切片

二维数组,它是沿着第0轴(即第一个轴)切片的。也就是说,切片是沿着一个轴向选取元素的。表达式L_arr[:2]可以被认为是“选取L_arr的前两行”。

布尔型索引:

数组的长度必须跟被索引的轴长度一致。此外,还可以将布尔型数组跟切片、整数(或整数序列,稍后将对此进行详细讲解)混合使用。注意:如果布尔型数组的长度不对,布尔型选择就会出错。

花式索引它指的是利用整数数组进行索引,花式索引跟切片不一样,它总是将数据复制到新数组中。

python nums函数获取结果记录集有多少行记录_python3 数据挖掘之pandas学习记录(一)-----NumPy...相关推荐

  1. python nums函数获取结果记录集有多少行记录_PHP mysqli_num_rows():获取查询结果的行数...

    在 PHP 中,想要获取由 SELECT 语句查询到的结果集中有多少条数据的话,则需要使用 mysqli_num_rows() 函数来实现.首先我们来看一下该函数的语法结构: 面向对象风格的写法 $m ...

  2. python nums函数获取结果记录集有多少行记录_Python数据分析——Pandas数据结构和操作...

    Pandas是什么? 1.一个强大的分析 结构化数据 的工具集 2.基础是NumPy,提供了 高性能矩阵 的运算 3.应用在数学挖掘,数据分析.比如,学生成绩分析,股票数据分析等 4.提供数据清洗功能 ...

  3. 【python】一个目录里面多个python程序文件,统计一下里面有多少行代码。即分别列出:代码、空行、注释的行数。

    一个目录里面多个python程序文件,统计一下里面有多少行代码.即分别列出:代码.空行.注释的行数. 题目 代码 结果 题目 一个目录里面多个python程序文件,统计一下里面有多少行代码.即分别列出 ...

  4. mysql 当前记录集不支持书签_存储过程 分页。当前记录集不支持书签。这可能是提供程序或选定的游标类型的限制。...

    ifsession("user")="A0331A2"then'试验存储过程response.Write("存储过程")DIMMyComm, ...

  5. python nums函数_Python中的内置函数

    Python中有很多内置函数,不需要我们调用模块可以直接使用,而且都是常用函数的封装,下面我们来看看Python中的内置函数都有那些. 1.abs() abs()是绝对值函数,把一个负数转化为正数,数 ...

  6. python nums函数_Python函数

    一.简介 函数是可重用的程序代码块.函数的作用,不仅可以实现代码的复用,更能实现代码的一致性.一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现. 函数用关键字def来定义,def关 ...

  7. python调用函数获取最开始的异常_Python使用sys.exc_info()方法获取异常信息

    在实际调试程序的过程中,有时只获得异常的类型是远远不够的,还需要借助更详细的异常信息才能解决问题. 捕获异常时,有 2 种方式可获得更多的异常信息,分别是: 使用 sys 模块中的 exc_info ...

  8. Python __subclasses__() 函数获取类的所有子类

    测试: class A(object):def __init_(self, a, b):self.a = aself.b = bdef add(self, a, b):return a+bdef su ...

  9. python 0x0101_Python中ASCII转十六进制、C中BCD转十进制、十六进制学习记录

    ASCII.BCD转十六进制 ASCII转十六进制转换规则Python实现 BCD转十进制.十六进制BCD码的优点BCD码分类各种BCD码的特点转换规则 ASCII转十六进制 转换规则 ASCII(A ...

最新文章

  1. 编码中统一更该变量的快捷键_流媒体的7种方式使您成为更好的编码器
  2. 数据库连接用户名和密码加密
  3. JAVA——获取classpath文件路径空格转变成了转义字符(%20)的问题解决方案
  4. Subversion 错误信息一览表
  5. python自带的shell、其性能优于ipython吗_Python自带的shell,其性能优于IPython
  6. C/C++ 如何劫持别人家的命令||函数||程序(只能对于window而言)
  7. nginx 和tomcat,apache的区别于联系。
  8. 如何查看电脑是32位还是64位的
  9. MATLAB 撰写word
  10. java函数调用实例_Java使用方法引用实现任意对象的实例方法
  11. 最新的.net书籍教程 更新时间:2005-9-5
  12. linux系统中看视频,怎么在linux里看视频啊?
  13. JAVA一般项目开发流程
  14. apache连接mysql配置_Apache+PHP配置及连接mysql数据库
  15. SiteSucker Mac版(整站下载工具)中文版
  16. 《阳光下》 ——【传递正反馈】
  17. WebGIS开发入门
  18. 小米手机怎么录制视频 手机录制视频的方法
  19. java.lang.IllegalArgumentException: MALFORMED
  20. potplay显示服务器关闭,PotPlayer关掉左上角显示播放时间的操作教程

热门文章

  1. SQL Server 备份与恢复之八:还原数据库
  2. How Setting Show Transaction Code on SAP Tree Menu Side.
  3. 关于 V C++ 中 Error 6 fatal error C1075的解决办法
  4. 架构选型,究竟啥时候选redis?
  5. Nginx配置IP地址的动态黑名单
  6. Spring JDBC 示例
  7. DHCP+VTP(实验讲解+配置)
  8. 【C语言】实参求值的顺序
  9. checksec未完待续~
  10. react和nodejs_如何使用React,TypeScript,NodeJS和MongoDB构建Todo应用