Numpy

本文介绍了NumPy库中的关键概念,如创建全零或随机数组、数据类型处理、数组索引、排序过滤、聚合计算、数组操作(如转置、翻转和拆分)以及数据存储与读取。

I. Numpy array

1. np.zeros(())    【都是0】

2. np.random.random(())   【0-1之间的随机浮点数】

3. np.arange(开始,结束(不包括),step)            

只有一个参数,默认从0开始

4. 3D & 4D array

5. array.flatten()     【把多维数组转化为一维】

6. array.shape   

7. array.reshape((,))  【改变形状,不改变元素和元素的数量】

II. Data types

1. data types 【跟python相比,numpy数据类型包括数据类型(如int),还包括可用内存量(以位为单位)】

np.int64 数据类型保存64位(bits)

bit VS byte

bit:  is the smallest unit of memory data available on a computer 电脑上存储的最小单位,只存储0或1

byte: a sequence of eight bits

np.int32:可以储存2的32次方个int(2的32次方=40亿,即从-20亿到+20亿的整数)

2. np.array.dtype  【查找数组中的元素的数据类型】

在创建数组时,可以用dtype来指定特定的数据类型:

3. array.astype(np.int8)      【更改数据类型为int8】

若更改数据类型,则全部元素的数据类型都会被更改!

若添加新元素,如把float加入到int中,所有数据类型会变为float;把str加入到任何,所有变成str;把int加入到bool,所有变成int

III. Index

1. array[3, 5] :【查找第三行第五列元素】

array[1] : 默认是行,第一行

array[:, 1] : 第一列

2. Sclice

查找index为50-100之间的偶数index元素,index第3列

array[50:101:2, 3]        2是step!!!

3. Axis order  

4. np.sort(array)

默认按照axis = 1 排列,最大的数字位于最后一列

np.sort(array, axis = 0) 按照axis = 0 排列,最大的数字位于最后一行

5. Flitering

1) fancy flitering

【mask】先建立一个condition,筛选出符合这个con的数组,返回值为数组

2) np.where(array[]condition)   

【返回值为indices】

np.where(sudoku_game中所有为0的元素,””: 把所有是0的元素替换为空格,其余不满足条件的元素不变)

6. np.concatenate((需要连接的array),axis = )         连接

【连接,默认在最下行后添加】无法改变维度

添加列,axis = 1

7. np.delete(array,具体的行或列,axis轴方向)

IV. Aggregate 计算计数

1. array.sum()  array.max()/min()  array.mean()

axis = 0 计算每一列的总数.max.min.mean

axis = 1 每行的总数

keepdims = True 保持原来的数据结构格式

2. array.cumsum()   累计值

3. vectorized python code

len() Python function

np.vectorize(len) numpy function

np.vectorize(str.upper)

4. broadcast array 

V. 存储&读取

1. Load and save npy & nparray

numpy 可以存储成csv, txt, pkl, npy 文件形式,但npy的速度和效率最快

加载npy文件  with open("文件名", "rb") as 名字:

np.load(名字)

rb : read binary 二进制读取

把array存进npy files 里面

npy文件可以之前不存在,若存在则自动覆盖

wb: write binary

2. np.flip(array,axis) 颠倒顺序行/列/颜色

axis = 2 反转颜色

axis = (0,1)反转行 列, 颜色不变

3. np.transpose(array, axes=()) 转置

axes = (1,0,2)   # 行列转置, 颜色不变

4. np.spilt(array,拆分数,要拆分的轴)

平着拆分 axis = 0

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值