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

这几天由于对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的前两行”。

布尔型索引:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值