Python数据分析——numpy

学习视频在这里,本人只是根据视频学习并整理了文案
【Python Numpy】 https://www.bilibili.com/video/BV1jE411F79F/?share_source=copy_web&vd_source=9e37a6816bfbb7cba5e37089f419bcda

导入numpy模块 准备工作

Import numpy as np

创建数组

Array 创建&arange 创建 asarray创建
A=np.array([1,2,3,4]) 一维数组
B=np.array([1,2],[2,3],[3,4]) 二维数组
C=np.array([1,2,3],[4,5,6],[7,8,9]]]) 三维数组{类似于说有多张纸}

array(创建数组,dtype= 设置创建数组里的类型,ndim= 返回的是数组的维度,返回的只有一个数,该数即表示数组的维度 比如说:输入3,创建3维 )

range(start,end,step) 默认从0开始 步长为1

a=np.arange( start,stop,step,dtype ) 类比range

a=np.random.randint( , ,size= ) 前两个空格代表从几到几之间的整数(建立二维方便)

numpy.asarray( , dtype, order) 第一空可以填列表[] 元组()

随机数创建

a=np.random.random(size=()) 一维数组 随机生成[0.0,1.0)的数字

关于size 内: 填单一数字:一维数组

​ 填两个数字:size=(行,列)

	        填三个数字:size=(几个(几个n行n列),行,列)

随机整数

def randomintTest():

要对 方法进行 调用

a=np.random.randint( , ,size= ) 前两个空格代表从几到几之间的整数

调用 第一行 def randomTest()

randomTest() 【为什么要调用? 调用的方式是?】

dtype的使用 dtype=np.int(32/64) 一般默认 不设置【32 64 代表了什么】

正态分布 randn函数返回的样本具有标准正态分布

a=np.random.randn(4) 创建一维数组 四个数

标准正态分布 方差为1 期望为0

创建指定期望和方差的正态分布

normal(loc 指定期望,scale指定方差,size) 默认为标准正态分布

nidm 数组维度 1 2 3

shape 数组的维度 对于矩阵 行列 一维的时候输出为元组如(4,)

size数组元素总个数 shape中的行*列

itemsize 每个元素所占的字节

其他方式创建

zeros(shape,dtype,order) 默认为浮点数 全为0.

a=np.zeros((5,),dtype=int)

ones 同上 全为1.

empty 创建的数组里面的元素是之前内存的值 【不明白】

linspace创建等差数列

np.linspace( start,stop,num=50(默认),endpoint=Ture(有结尾,false没有最后一个数字),retstep,dtype)

logspace创建等比数列

a=np.logspace(start,stop,num,endpoint,base,dtype)

base对数log底数 即start和stop的指数 即公比 默认的为10.0

切片和索引

一维

索引访问 a[ ] 括号内填位置

切片 [start:stop:step]

反向获取[::-1]

二维

转化形状 reshape(行,列) 例: b=a.reshape(4,6)

索引访问 a[ ] [ ] 括号内填位置,按照先行后列

切片 [start:stop:step,start:stop:step]先行后列,中间用逗号隔开 可以省略步长

使用坐标获取 a[(2,3),(2,0)] (逗号前面把所有行数字放在一起,逗号后面所有列数字放在一起,实例真实的坐标是(2,2)(3,0)) 如果只是一个,可以a[1,2]

取出来直接print为数字,需要输出[ ]模式要写print(np.array([a[1,2],a[2] [0]]))

布尔索引 a=np.array([np.nan,]) 【意义是什么?】

print(a[a>5]) 意思为元素中大于5的可以输出

print a[~np.isnan(a)] ~(取补运算符)

数组的复制

a[1] [2]= 可以这样直接更改数组的元素

直接修改复制给新变量的a1中的元素,a中元素也会被修改

a1=np.copy(a[ :, :]) 深拷贝 修改a1不影响a中的元素

修改数组的维度

转化形状 reshape(行,列) 例: b=a.reshape(4,6)

或者np.reshape(原数组,( )) b=np.reshape(a,( , ))

多维变为一维

a=b.reshape(元素个数 )

a=b.reshape(-1)

a=b.ravel() 左边两种都可以

a=b.flatten()

数组的拼接

水平数组组合

np.hstack([a,b]) a,b为两个数组 亦可以写作 hstack((a,b))

垂直拼接

np.vstack((a,b))

concatenate 连接沿现有轴的数组序列

np.concatenate((a,b),axis=) axis默认为0 是垂直方向的

二维数组有两个轴 0或1 1为水平方向拼接,相当于hstack

三维数组有三个轴 0 1 2 形状要相同才能拼接

数组的分割 == ==

split(ary,indices or sections,axis)

ary:被分割的数组

第二空: 传递整数:将原数组平分为n份

​ 传递数组分割 按照位置分割 b=np.split(a,[3,5]) 则为0-3为一份,4-5为一份,5之后为一份

a=np.arange(1,13)

r,w,k=np.split(a,[2,3],axis=0) 看不懂

水平

np.hsplit(a,)

垂直

np.vsplit(a,)

数组的转置

a=np.arange( , ).reshape( , )

行成为列 列成为行 a[m] [n] 变成a[n] [m]

1 b=a.transpose()

2 .T a.T

3 b=np.transpose(a)

对于三维进行转置,默认将首位和某位数字交换

b=np.transpose( , , ) 0,1,2代表原来的顺序 将三个位置不同填写可以获得转置 例如(1,2,0)将原本在0位置上的数换到第三个位置上

函数

补充:广播 把较小的数组扩展补充到较大数组的形状 类比Excel表格

算数函数

加法 1 np.add(a,b)

​ 2 a+b

减法

y=np.empty(( , ),dtype=np.int)

np.multiply(a,乘的数字或者数组,out=y)

np.sin() 三角函数

np.around(a) 四舍五入

np.ceil(a) 全都入向上取整

np.floor(a) 全都舍向下取整

聚合函数

sum求和 prod 所有元素相乘 mean 平均值

std标准差 var方差 median中数 power幂运算 sqrt开方

min最小值 max 最大值 argmin最小值的下标

argmax最大值的下标 inf无穷大 exp(10以e为底数的指数)

log()对数

power(a, n,out=y[:]) 将a中每个元素计算n次幂的形式(可以是n的元素次幂) y后写存放的位置

median() 输出一维数组的中位数

median(a,axis=0) 要通过axis指定轴 0时即为每一列的中位数

数组元素的添加和删除

resize(a ,返回的新形状 ) 元素不够,重新周期性取元素

append(a,要添加的值 需要形状相同,axis ) 默认为横向添加

insert(a,obj=插入的位置,要插入的内容,axis) 如果不输入axis不传递,则数组会被展开成为一维数组 是插入一行或一列

delete() 与insert类似,不输入axis 则会被展开

unique(a,return_index, return_inverse, return_counts) 去除数组中重复的元素

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值