python数据分析和数据挖掘之numpy模块函数大全

一、numpy模块

numpy模块可以进行数据的高效处理,提供数组支持,是我们后续学习其他的函数库的基础。

二、numpy的安装与引用

numpy可以通过外部安装方式进行安装,外部安装前的准备工作:准备一台安装了python的联网的计算机。
1、安装numpy库的安装步骤:
1)首先确定准备工作完成
2)按住win+r打开命令提示符,输入cmd按下回车
3)输入以下指令pip install numpy
2、引用numpy库
打开后缀名为.py文件,在程序开始处,输入import numpy就可以完成numpy库的导入。

三、numpy的数据类型

名称描述
bool_布尔型数据类型(True 或者 False)
int_默认的整数类型(类似于 C 语言中的 long,int32 或 int64)
intc与 C 的 int 类型一样,一般是 int32 或 int 64
intp用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64)
int8字节(-128 to 127)
int16整数(-32768 to 32767)
int32整数(-2147483648 to 2147483647)
int64整数(-9223372036854775808 to 9223372036854775807)
uint8无符号整数(0 to 255)
uint16无符号整数(0 to 65535)
uint32无符号整数(0 to 4294967295)
uint64无符号整数(0 to 18446744073709551615)
float_float64 类型的简写
float16半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位
float32单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位
float64双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位
complex_complex128 类型的简写,即 128 位复数
complex64复数,表示双 32 位浮点数(实数部分和虚数部分)
complex128复数,表示双 64 位浮点数(实数部分和虚数部分)

四、利用numpy创建数组

下面,我将介绍几种numpy数组的建立:

1.创建指定形状数组

#numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组
#语法结构
numpy.empty(shape, dtype = float, order = 'C')

参数说明:

参数描述
shape数组形状
dtype数据类型,可选
order有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。

2.创建以0填充的数组

# numpy.zeros创建指定大小的数组,数组元素以 0 来填充
# 语法结构
numpy.zeros(shape, dtype = float, order = 'C')

参数说明:

参数描述
shape数组形状
dtype数据类型,可选
order有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。

3.创建以1填充的数组

# numpy.ones创建指定大小的数组,数组元素以 0 来填充
# 语法结构
numpy.ones(shape, dtype = float, order = 'C')

参数说明:

参数描述
shape数组形状
dtype数据类型,可选
order有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。

4.从已有数组创建数组

#语法结构
numpy.asarray(a, dtype = None, order = None)

参数说明:

参数描述
a任意形式的输入参数,可以是,列表, 列表的元组, 元组, 元组的元组, 元组的列表,多维数组
dtype数据类型,可选
order可选,有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。

5.创建动态数组

#语法结构
numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)

参数说明:

参数描述
buffer可以是任意对象,会以流的形式读入。
dtype返回数组的数据类型,可选
count读取的数据数量,默认为-1,读取所有数据。
offset读取的起始位置,默认为0。

6.迭代创建数组

#语法结构
numpy.fromiter(iterable, dtype, count=-1)

参数说明:

参数描述
iterable可迭代对象
dtype返回数组的数据类型
count读取的数据数量,默认为-1,读取所有数据

7.创建数值范围的数组

#语法结构
numpy.arange(start, stop, step, dtype)

参数说明:

参数描述
start起始值,默认为0
stop终止值(不包含)
step步长,默认为1
dtype返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。

8.创建一个一维等差数列数组

#语法结构
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

参数说明:

参数描述
start序列的起始值
stop序列的终止值,如果endpointtrue,该值包含于数列中
num要生成的等步长的样本数量,默认为50
endpoint该值为 true 时,数列中包含stop值,反之不包含,默认是True。
retstep如果为 True 时,生成的数组中会显示间距,反之不显示。
dtypendarray 的数据类型

9.创建一个等比数列的数组

#语法结构
np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

参数说明:

参数描述
start序列的起始值为:base ** start
stop序列的终止值为:base ** stop。如果endpointtrue,该值包含于数列中
num要生成的等步长的样本数量,默认为50
endpoint该值为 true 时,数列中中包含stop值,反之不包含,默认是True。
base对数 log 的底数。
dtypendarray 的数据类型

例程

import numpy
a=numpy.array([1,2,3]) #创建一维数组
b=numpy.array([1,2,3],[1,2,3])#创建二维数组
numpy.zeros(行,列) #创建内部元素为0
numpy.ones(行,列)
numpy.full((行,列),填充元素)
numpy.eye(维度X)#创建维度为x维度的单位矩阵
numpy.random.random(行,列)#创建行*列的随机矩阵

五、numpy数组操作

1.修改数组

函数语法描述
reshapenumpy.reshape(arr, newshape, order=‘C’)不改变数据的条件下修改形状
flatfor i in a.flat数组元素迭代器
flattenndarray.flatten(order=‘C’)返回一份数组拷贝,对拷贝所做的修改不会影响原始数组
ravelnumpy.ravel(a, order=‘C’)返回展开数组

2.翻转数组

函数语法描述
transposenumpy.transpose(arr, axes)对换数组的维度
ndarray.Ta.T和 self.transpose() 相同
rollaxisnumpy.rollaxis(arr, axis, start)向后滚动指定的轴
swapaxesnumpy.swapaxes(arr, axis1, axis2)对换数组的两个轴

3.修改数组维度

维度语法描述
broadcastnumpy.broadcast(x,y)产生模仿广播的对象
broadcast_tonumpy.broadcast_to(array, shape, subok)将数组广播到新形状
expand_dimsnumpy.expand_dims(arr, axis)扩展数组的形状
squeezenumpy.squeeze(arr, axis)从数组的形状中删除一维条目

4.连接数组

函数语法描述
concatenatenumpy.concatenate((a1, a2, …), axis)连接沿现有轴的数组序列
stacknumpy.stack(arrays, axis)沿着新的轴加入一系列数组。
hstacknumpy.hstack(arrays, axis)水平堆叠序列中的数组(列方向)
vstacknumpy.vstack(arrays, axis)竖直堆叠序列中的数组(行方向)

5.分割数组

函数语法数组及操作
splitnumpy.split(ary, indices_or_sections, axis)将一个数组分割为多个子数组
hsplitnumpy.hsplit(ary, indices_or_sections, axis)将一个数组水平分割为多个子数组(按列)
vsplitnumpy.vsplit(ary, indices_or_sections, axis)将一个数组垂直分割为多个子数组(按行)

6.数组元素的添加与删除

函数语法元素及描述
resizenumpy.resize(arr, shape)返回指定形状的新数组
appendnumpy.append(arr, values, axis=None)将值添加到数组末尾
insertnumpy.insert(arr, obj, values, axis)沿指定轴将值插入到指定下标之前
deleteNumpy.delete(arr, obj, axis)删掉某个轴的子数组,并返回删除后的新数组
uniquenumpy.unique(arr, return_index, return_inverse, return_counts)查找数组内的唯一元素

六、numpy的位操作

函数语法描述
bitwise_andnumpy.bitwise_and(num1,num2)对数组元素执行位与操作
bitwise_ornumpy.bitwise_or(num1,num2)对数组元素执行位或操作
invertnumpy.invert(num)按位取反
left_shiftnumpy.left_shift(num,num1)向左移动二进制表示的位
right_shiftnumpy.right_shift(num,num1)向右移动二进制表示的位

七、NumPy 字符串函数

以下函数用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作。 它们基于 Python 内置库中的标准字符串函数。

这些函数在字符数组类(numpy.char)中定义。

函数描述
add()对两个数组的逐个字符串元素进行连接
multiply()返回按元素多重连接后的字符串
center()居中字符串
capitalize()将字符串第一个字母转换为大写
title()将字符串的每个单词的第一个字母转换为大写
lower()数组元素转换为小写
upper()数组元素转换为大写
split()指定分隔符对字符串进行分割,并返回数组列表
splitlines()返回元素中的行列表,以换行符分割
strip()移除元素开头或者结尾处的特定字符
join()通过指定分隔符来连接数组中的元素
replace()使用新字符串替换字符串中的所有子字符串
decode()数组元素依次调用str.decode
encode()数组元素依次调用str.encode

八、数学函数

函数描述
sin()正弦函数
cos()反弦函数
tan()正切函数
arcsin()反正弦函数
arccos()反反弦函数
arctan()反正切函数
degrees()将弧度转换为角度
around(a,decimals)返回指定数字的四舍五入值
floor()返回小于或者等于指定表达式的最大整数
ceil()返回大于或者等于指定表达式的最小整数
add()两个数组相加
subtract()两个数组相减
multiply()两个数组相乘
divide()两个数组相除
reciprocal()函数返回参数逐元素的倒数
power()函数将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂
mod()计算输入数组中相应元素的相除后的余数

九、统计函数

函数描述
amin()用于计算数组中的元素沿指定轴的最小值
amax()用于计算数组中的元素沿指定轴的最大值
ptp()函数计算数组中元素最大值与最小值的差(最大值 - 最小值)
percentile()百分位数是统计中使用的度量,表示小于这个值的观察值的百分比
median()函数用于计算数组 a 中元素的中位数(中值)
mean()函数返回数组中元素的算术平均值
average()函数根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值

十、排序、条件刷选函数

NumPy 提供了多种排序的方法。 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较。

种类速度最坏情况工作空间稳定性
quicksort(快速排序)1O(n^2)0
mergesort(归并排序)2O(n*log(n))~n/2
heapsort(堆排序)3O(n*log(n))0

1.msort、sort_complex、partition、argpartition

函数描述
msort(a)数组按第一个轴排序,返回排序后的数组副本。np.msort(a) 相等于 np.sort(a, axis=0)。
sort_complex(a)对复数按照先实部后虚部的顺序进行排序。
partition(a, kth[, axis, kind, order])指定一个数,对数组进行分区
argpartition(a, kth[, axis, kind, order])可以通过关键字 kind 指定算法沿着指定轴对数组进行分区

2.argmax() 、argmin()、nonzero() 、where()、extract()

函数描述
argmax()沿给定轴返回最大元素的索引
argmin()沿给定轴返回最小元素的索引
nonzero()返回输入数组中非零元素的索引
where()返回输入数组中满足给定条件的元素的索引
extract()根据某个条件从数组中抽取元素,返回满条件的元素

十一、视图、副本和矩阵库

函数描述
view()创建一个新的数组对象,该方法创建的新数组的维数变化不会改变原始数据的维数
copy()创建一个副本。 对副本数据进行修改,不会影响到原始数据,它们物理内存不在同一位置
a.T转置数组
empty()返回一个新的矩阵
zeros()创建一个以 0 填充的矩阵
matlib.ones()创建一个以 1 填充的矩阵
matlib.eye()返回一个单位矩阵,对角线元素为 1,其他位置为零
matlib.identity()返回给定大小的单位矩阵
matlib.rand()创建一个给定大小的矩阵,数据是随机填充的

十二、NumPy 线性代数

NumPy 提供了线性代数函数库 linalg,该库包含了线性代数所需的所有功能,可以看看下面的说明:

函数语法描述
dotnumpy.dot(a, b, out=None)两个数组的点积,即元素对应相乘。
vdotnumpy.vdot(a,b)两个向量的点积
innernumpy.inner(a,b)两个数组的内积,一维数组的内积
matmulnumpy.matmul(a,b)两个数组的矩阵积
determinantnumpy.linalg.det(a)数组的行列式
solvenumpy.linalg.solve()求解线性矩阵方程
invnumpy.linalg.inv()计算矩阵的乘法逆矩阵

十三、numpy的IO

函数方法描述
save()numpy.save(file, arr, allow_pickle=True, fix_imports=True)将数组保存到以 .npy 为扩展名的文件中
savez()numpy.savez(file, *args, **kwds)将多个数组保存到以 npz 为扩展名的文件中
savetxt()np.savetxt(FILENAME, a, fmt="%d", delimiter=",")以简单的文本文件格式存储数据,对应的使用 loadtxt() 函数来获取数据
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝域时空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值