Numpy

创建数组

先导入numpy包

import numpy as np

数组属性:ndarray(数组)时存储单一数据类型的多维数组

属性说明
ndim返回int。表示数组的维数
shape返回tuple。表示数组的尺寸,对于n行m列的矩阵,形状为(n, m),可设置
size返回int。表示数组的元素总数,等于数组矩阵的乘积
dtype返回data-type。描述数组中元素的类型。可设置
itemsize返回int。表示数组的每个元素的大小(以字节为单位)。

创建函数

numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
参数说明
object接收array。表示要创建的数组。无默认。
dtype接收data_type。表示数组所需的数据类型。若未指定,则选择保存对象所需的最小类型,默认为None。
ndmin接收int。指定生成数组应该具有的最小维数。默认为None。
函数说明
array将输入数据(列表、元组、数组或其它序列类型)转换为ndarray。要么推断出dtype,要么特别指定dtype。默认直接复制输入数据
asarray将输入转换为ndarray,如果输入本身就是一一个ndarray就不进行复制
arange(low, higt, step)类似于内置的range,但返回的是一个ndarray而不是列表
ones,ones_ like根据指定的形状和dtype 创建一个全 1数组。one_ like 以另一个数组为参数,并根据其形状和dtype创建一个全1数组
zeros,zeros_like类似于ones和ones_ like, 只不过产生的是全0数组而已
empty,empty_like创建新数组,只分配内存空间但不填充任何值
full,full_like用fll value中的所有值,根据指定的形状和dtype创建一个数组。 full_like使用另一一个数组,用相同的形状和dtype创建
eye,identity创建一个正方的NxN单位矩阵(对角线为1,其余为0
astype()改变数组的数据类型
reshape()改变原有的形状
np.where(condition, [x,y])True就拿x的值,False就拿y的值,遍历循环

随机数数组创建(np.random)

函数用处
np.random.random((3,4))创建一个3x3的随机数[0,1)数组(行x列)
np.random.randn(3,4)创建一个3x4的随机数(-1 0]数组
np.random.normal产生正态(高斯)分布的随机数
np.random.randInt(a, b, size=(m, n))产生在a,b之间的整数,形状由size决定
np.random.uniform(a, b, size=(m,n))产生在[a, b)中均匀分布的随机数。
np.random.shuffle对一个序列进行随机排序
np.random.choice(object, size)随机抽取数组的元素,个数由size决定,size = shape,不重复选的话,使replace = False

切片

一维数组

一维数组很好切,跟python的内置类型list相似,但切片所得的不相同,ndarray也有负数索引

格式:
ndarray[start:stop:step]:左包右不包
[:]:代表全切

二维数组

基本索引和切片

ndarray[start:stop:step][start:stop:step]:左包右不包,第一个是行,即axis = 0;第二个是列,即axis = 1。
ndarray[axis = 0, axis=1]:ndarray[0][2] ===ndarry[0, 2],两者作用一样,类似于坐标
在这里插入图片描述

布尔型索引

因为ndarray[expression],支持得出布尔值的表达式当索引,得到一个全是True和False的数组。
用布尔数组来切片,只会得到True对应的值
布尔数组的长度必须要跟被索引的轴长度一致。
要选择False的数组,可以用到【~expression】来表示表达式的反值,表达式之间的关系用 & | 运算符

要注意通过布尔型索引得到的数组中的数据,将创建数据的副本,即使返回一模一样的数组也是如此!

花式索引

花式索引(Fancy indexing)是一个Numpy术语,它指的是利用整数数组进行索引。
记住,花式索引和切片不一样,它终是将数据复制到新数组中

非连续切片

array[m, n]#得到(m, n)的数据,跟array[m][n]一样,里面可用切片
array[m1:m2, n1:n2]
araay[[m1, m2], [n1, n2]]#得到(m1, n1)和(m2, n2)的数据,里面不可用切片

数组的转置

转置方法用法
Tarray.T即可返回转置后的函数,不改变原有的数组
transposearray.transpose()即可返回转置后的函数,不改变原有的数组

广播机制

总的来说,就是行数与列数必须有一样跟原数组一样

在这里插入图片描述
在这里插入图片描述

全局函数

即不遍历也可对全部数据进行操作

在这里插入图片描述
在这里插入图片描述

文件读写

把数据读到一个数组中

np.load(file)

运算

通用函数说明
算数运算+ - * / **
关系运算> < = != >= <=
逻辑运算符np.all,np.any
广播运算列数或行数有一个相等即可
一元函数abs,
二元函数add,subtract,multipy

统计分析

去重
np.unique
重复
np.tile 整个的复制
np.repeat 单个复制
排序
sort,会返回新数组,不改变原有数组
soted,改变原有数组
sum,求和
mean,求平均值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值