Numpy学习笔记

ndarray多维数组

创建

import numpy as np
np.array([1,2,3,4])
np.array([1,2,3,4,],[5,6,7,8])
np.zeros(8)
np.zeros(3,4)
np.ones(4)
np.one_like([1,2,3,4])
np.empty((2,2,2))
np.arange(10)

数组创建函数

  • arange
  • ones/ones_like
  • zeros/zeros_like
  • empty/empty_like
  • eye/identity

属性

  • ndim: 轴的个数
  • shape: 数组的维度
  • size: 元素总个数
  • dtype: 数据类型
  • itemsize: 每个元素的字节大小

数据类型

  • float
  • int
  • complex
  • bool
  • string_
  • object

类型转换

attr1.astype(np.float64)  # np.float64和'float64'都可以
attr1.astype('string_')
attr1.astype('int32')

数组变换

  • reshage: 变换
  • flattern: 扁平
  • ravel: 散开
arr1 = np.arrary(9)
arr.reshape((3,3))
arr.reshape((3, -1)) # -1根据数据数据本身/3决定

3种变换(数据重塑)都不会修改原数组

  • concatenate: 合并
  • split: 拆分
arr1 = np.arrage(12).reshape(3, 4)
arr2 = np.arrange(12,24).reshape(3,4)
np.concatenate([arr1, arr2], axis=0) # 相当于np.vstack([arr1, arr2])
np.concatenate([arr1, arr2], axis=1) # 相当于np.hstack([arr1, arr2])
np.split(arr1, [2, 4])
  • transpose: 数组转制(只支持2维)
  • swapaxes: 轴对换(支持多维)
arr1 = np.arange(12).reshape(3,4)
arr1.transpose((1,0)) # 相当于 arr1.T arr2 = np.arrage(16).reshape(2,2,4)
arr2.swapaxes(1,2) # 交换y,z轴

随机函数(random)

  • rand: 均匀分布的样品值
  • randint: 随机整数
  • randn: 平均数为0, 标准差为1的正态分布随机数
  • normal: 指定平均数和标准差的正态分布数组
  • seed: 随机种子
  • permutation: 随机排序, 不改变原数组
  • shuffle: 随机排序,改变原数组
  • uniform(low, high, size): 均匀分布的数组
  • poisson(lam, size): 泊松分布数组
arr1 = np.random.randint(100, 200, size=(5,4))
np.random.randn(2,3,5)
np.random.normal(4,5,size=(3,5))
np.random.permutation(arr1)
np.random.shuffle(arr1)

数组的索引和切片

  • 索引支持多维索引arr1[2,3] 或arr1[2][3]
  • 索引值为原数组的视图, 修改arr1[2,3]会修改原数组(如并不想修改需使用arr1[2,3].copy())
  • 切片支持多维切片arr1[2:, :-1]
  • 布尔型索引 datas[fruits==0] = 1 # 筛选赋值
  • 花式索引: arr[np.ix_([3,2],[2,1]) # arr[[3,2]][:,[2,1]]

数组运算

标量运算

arr1 = np.array([1, 2, 3])
arr1 * 10
arr1 * arr1
arr1 - arr1

通用函数

  • abs: 绝对值
  • square: 平方
  • add: 两个数组相加
  • minimum: 计算最小值
  • modf: 分割整数部分和小数部分

可以指定axis轴

条件逻辑运算

  • np.where(cond, arr1, arr2) # 类似3元表达式

统计运算

  • sum: 求和
  • mean: 求算术平均数
  • std/var: 求标准差/方差
  • min/max: 最小数/最大数
  • argmin/argmax: 最小数/最大数索引
  • cumsum: 所有元素的累加和
  • cumprod 所有元的累计积
  • all/any: 布尔类型运算

集合运算

  • np.unique: 找出所有唯一值,并排序
  • np.inld: 是否包含指定的值
  • np.intersect1d: 公共元素
  • np.union1d: 并集
  • np.setdiff1d: 差集
  • setxor1d: 交集取反

线性代数

  • np.dot: 点积
  • from numpy.linalg import det ...

数组存取

  • np.loadtxt: 读取
arr1 = np.loadtxt('1.csv', delimiter=',')

示例: 图像变换

Python数据分析:Numpy学习笔记的更多相关文章

  1. python数据分析入门学习笔记

    学习利用python进行数据分析的笔记&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据分 ...

  2. python数据分析入门学习笔记儿

    学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据 ...

  3. 利用python数据分析panda学习笔记之基本功能

    1 重新生成索引 如果某个索引值不存在就引入缺失值 from pandas import Series,DataFrame import pandas as pd import numpy as np ...

  4. 利用python数据分析panda学习笔记之Series

    1 Series a:类似一维数组的对象,每一个数据与之相关的数据标签组成 b:生成的左边为索引,不指定则默认从0开始. from pandas import Series,DataFrame imp ...

  5. 利用python数据分析panda学习笔记之DataFrame

    2 DataFrame a:通过传入一个等长的列表构成DataFrame 自动加上索引 data={'state':['ohio','ohio','ohio','Nevada','Nevada'], ...

  6. $《利用Python进行数据分析》学习笔记系列——IPython

    本文主要介绍IPython这样一个交互工具的基本用法. 1. 简介 IPython是<利用Python进行数据分析>一书中主要用到的Python开发环境,简单来说是对原生python交互环 ...

  7. NumPy学习笔记 三 股票价格

    NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...

  8. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  9. NumPy学习笔记 一

    NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

随机推荐

  1. Codeforces 1189F. Array Beauty

    传送门 首先可以注意到序列里面元素的顺序对答案是没有影响的,所以二话不说先排序再看看怎么搞 考虑枚举每种子序列可能产生的贡献并算一下产生这个贡献的子序列有多少 考虑设 $F(x)$ 表示选择的元素差值 ...

  2. Scala学习十八——高级类型

    一.本章要点 单例类型可用于方法串接和带对象参数的方法 类型投影对所有外部类的对象都包含了其他内部类的实例 类型别名给类型指定一个短小的名称 结构类型等效于”鸭子类型“ 存在类型为泛型的通配参数提供了 ...

  3. git diff 的简单使用(比较版本区别)

    假如我们修改viewMail.vue 文件(部分代码) 从 //根据ID获取详情 getById () { let that = this; this.viewMailModal = true; th ...

  4. 安装laravel-ide-helper

    前言 使用laravel作为PHP开发框架的朋友都知道,laravel提供的门面操作都对于PHPStorm的代码提示和方法跳转都不是很友好.然而没有关系,今天介绍一个组件帮助到我们.就是!就是!就是! ...

  5. SpringBoot实现定时器定时处理任务

    最近在项目中遇到了一个问题, 对于新建的活动, 活动设置了开始时间和结束时间, 也就是数据库中的一个状态码的改变而已. 但是,这里就有问题了, 如何去实现到时间更改活动状态呢? 1. 刚开始的时候,我 ...

  6. localStorage、sessionStorage和cookie的区别

    本地客户端(浏览器)查看三者信息: HTML4的本地存储:cookie 浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等根服务端进行数据交互. 一.co ...

  7. HTML5学习:缩略图

    HTML代码 <div> <img src="img/pic.png" alt="This is a pic" /> </div& ...

  8. Window10下Python3.7的wordcloud库的安装与基本使用

    1.进入Python官网→点击Pypl→搜索“wordcloud”.如下图所示: 2.使用cmd安装,具体操作如下: 使用 pip list 查看是否安装成功

  9. pandas库的一些操作

    1.pd.value_count():带入数值可以计算出value有多少的类别 #得到类别的降序 tips['day'].value_counts(sort=True,ascending=True) ...

  10. Java NIO 学习笔记一

    缓冲区操作 进程执行I/O操作,归结起来就是向操作系统发出请求,它要么把缓存区例的数据排干(写),要么用数据把数据区填满(读).进程使用这一机制处理所有数据进出操作. 进程使用read()系统调用,要 ...