《利用python进行数据分析》笔记(一)

摘要由CSDN通过智能技术生成
第4章 Numpy入门
基础

data = np.arange(10) :生成一个一维数组
data = np.array( [ [1,2,3,4],[5,6,7,8] ] ) 生成一个多维数组
data = np.arange(32).reshape((8,4))

data.shape
data.dtype
data.ndim
data.zeros((3,6))
数组创建函数
3. 索引
(1) 切片索引。是原始数据的视图,修改切片,原始数据同样会被修改
若想要复制,则为:data[5:8].copy()
(2) 花式索引,data[ [1,5,7,2], [ 0,3,1,2] ] 为 data[1,5], data[5,3], data[7,1], data[2,2] 的数组。花式索引总是一维的。
(3) 布尔型索引 P133
4. !=,==,|,&,~ 反转条件:data[~(names != ‘Bob’)],负数索引
5. 转置
(1) data.T 转置,data.dot计算矩阵内积
(2) 高维数组转置,data.transpose() 费脑子

数据处理
  1. 通用函数ufunc
    (1) 一元ufunc:np.sqrt(data) , np.exp(data)
    (2) 二元ufunc:np.add(x,y) , np.maximum(x,y)
    (3) x, y = np.modf(data):返回浮点数数组的小数和整数部分
    (4) 接受out选项参数,可以在数组的原地进行操作
    一元函数
    二元函数

  2. 用数组表达式代替循环的做法,通常被称为 矢量化

  3. np.meshgrid() 生成网格点坐标矩阵,p145
    针对X的每一行都一样,Y的每一列都一样的这种强烈的规律性,numpy提供的numpy.meshgrid()函数可以让我们快速生成坐标矩阵X,Y

语法:X,Y = numpy.meshgrid(x, y)

输入的x,y,就是网格点的横纵坐标列向量(非矩阵)

输出的X,Y,就是坐标矩阵

  1. 表现条件逻辑 p147
    numpy.where : 三元表达式 x if codition else y 的矢量化版本
    result = np.where (cond, xarr, yarr) :当cond中的值为True时,选取xarr的值,否则为yarr的值。
    注意:xarr和yarr可以不必是数组,可以是标量值

  2. 聚合计算
    np.sum(a, axis = 1) / a.sum(axis = 1),计算行的平均值
    np.mean(a, axis = 0),计算列的平均值

mean和average都是计算均值的函数,在不指定权重的时候average和mean是一样的。指定权重后,average可以计算一维的加权平均值。
在这里插入图片描述

  1. 布尔型数组可用于计算
    bools = np.array([false, false, true, false])
    bools.any() --> True,检查数组中是否存在一个或多个True
    bools.all() --> False,检查数组中所有值是否都是True

  2. np.unique,找出数组中的唯一值并返回已排序的结果
    ints = np.array( [ 3, 3, 3, 2, 2, 1, 1, 4, 4 ] )
    np.unique( ints ) --> array[ 1, 2, 3, 4 ]

values = np.array( [ 6, 0, 0, 3, 2, 5, 6] )
np.in1d( values , [2, 3, 6] ) --> array( [ true, false, false, true, true, false, true ] )

  1. numpy.random模块是对python内置的random的补充 P159
线性代数
  1. x.dot(y) = np.dot(x,y)
  2. @符,x @ np.ones([ 6. , 15. ])
  3. numpy.linalg 行业标准线性代数库,如BLAS、LAPACK、lntel MKL(Math Kernel Library)
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值