Python数据分析:Numpy学习笔记
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学习笔记的更多相关文章
- python数据分析入门学习笔记
学习利用python进行数据分析的笔记&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据分 ...
- python数据分析入门学习笔记儿
学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据 ...
- 利用python数据分析panda学习笔记之基本功能
1 重新生成索引 如果某个索引值不存在就引入缺失值 from pandas import Series,DataFrame import pandas as pd import numpy as np ...
- 利用python数据分析panda学习笔记之Series
1 Series a:类似一维数组的对象,每一个数据与之相关的数据标签组成 b:生成的左边为索引,不指定则默认从0开始. from pandas import Series,DataFrame imp ...
- 利用python数据分析panda学习笔记之DataFrame
2 DataFrame a:通过传入一个等长的列表构成DataFrame 自动加上索引 data={'state':['ohio','ohio','ohio','Nevada','Nevada'], ...
- $《利用Python进行数据分析》学习笔记系列——IPython
本文主要介绍IPython这样一个交互工具的基本用法. 1. 简介 IPython是<利用Python进行数据分析>一书中主要用到的Python开发环境,简单来说是对原生python交互环 ...
- NumPy学习笔记 三 股票价格
NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...
- NumPy学习笔记 二
NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
- NumPy学习笔记 一
NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...
随机推荐
- k8s之helm入门
1.概述 helm是k8s的另外一个项目,相当于linux的yum,在yum仓库中,yum不光要解决包之间的依赖关系,还要提供具体的程序包,helm仓库里面只有配置清单文件,而没有镜像,镜像还是由镜像 ...
- 利用Mathpix Snipping Tool轻松在markdown/LaTeX中输入电子书和论文的数学公式
最近写图形学博客写累了,公式太多了,一个个输入实在太累,所以从数学建模队友那里吃了一个安利. 官网下载 下载安装后,直接新建一个截图,就可以转成LaTeX数学公式了.效果如下: 爽的一批啊!!! 另外 ...
- 服务返回的json数据过大,nginx无法返回给client
现象:请求同样的服务器,N多个接口中,只有一个接口未返回:从日志看,请求已到后端服务,并返回 解决方案:配置nginx缓冲大小 ###Nginx的缓冲区的大小 proxy_buffer_size 5m ...
- python 画3D的高斯曲线
用python画3D的高斯曲线,我想如果有多个峰怎么画? import numpy as npimport matplotlib.pyplot as pltimport mathimport mpl_ ...
- npm无法安装node-sass的解决方法
使用npm install 命令安装node-sass时,经常出现安装失败的情况.原因在于npm服务器在美国,还有就是某强大的防火墙作用.导致模块无法下载. npm install node-sass ...
- LeetCode 腾讯精选50题--求众数
由于众数是指数组中相同元素的个数超过数组长度的一半,所以有两种思路,一. 先排序,后取排序后的数组的中间位置的值:二. 统计,设定一个变量统计相同元素出现的次数,遍历数组,若与选定的元素相同,统计变量 ...
- 基于create-react-app脚手架,按需加载antd组件以及less样式
摘要 为了更好的书写css样式,在react中引入less,在网上查询了许多关于react引入less样式文件的资料,大多数都是需要在react项目中npm run eject暴露出底层文件,然后在底 ...
- 5.API详解
Dao 中需要通过 SqlSession 对象来操作 DB.而 SqlSession 对象的创建, 需要其工厂对象 SqlSessionFactory.SqlSessionFactory 对象, 需要 ...
- 我理解的epoll(三)多线程模式下的ET
ET模式下,需要循环从缓存中读取,直到返回EAGAIN没有数据可读后,一个被通知的事件才算结束.如果还读取过程中,同一个连接又有新的事件到来,触发其他线程处理同一个socket,就乱了.EPOLL_O ...
- mount的bind选项
mount 的 bind 选项将第一个目录克隆到第二个.一个目录中的改变将会在另一个中出现 - 毕竟,它是同一磁盘上的同一个块. 使用 bind 与对同一设备进行两次挂载的区别在于:您可以挂载子目 ...