python numpy库教程_python教程1:numpy库

ps这篇文章是匆忙之下写的,上学了,日后更新,如果觉得这篇文章不好,请在评论区提出建议

咳咳,这里是没有语法讲解的,如果基础语法don't know可以点这里

ok,切入正题开始学习numpy库的使用,嗯,先放上看起来很官方的链接https://www.numpy.org.cn/

安装numpy什么的我就不说了

那么numpy是干什么的?

其实就是拿个n维数组玩来个玩

ok,那么它能玩出什么花样呢,先别急,来学习一下语法基础

依然是亲爱的termux

python numpy库教程_python教程1:numpy库_第1张图片

numpy数组

这是创建一个的一维数组,简单吧

其实如下写法也是可以的(注意,这里给numpy指定别名np)

变量名 = np.array([x,x,x,x,x])

变量名 = np.array((x,x,x,x,x))

变量名 = np.arange(x,x)

变量名 = np.linespace(x,x,x)

实例代码↓

a = np.array([0, 1, 2, 3, 4])

b = np.array((0, 1, 2, 3, 4))

c = np.arange(5)

d = np.linspace(0, 2*np.pi, 5)

这里np.pi即是圆周率前15位

运行结果↓

>>> a = np.array([0, 1, 2, 3, 4])

>>> b = np.array((0, 1, 2, 3, 4))

>>> c = np.arange(5)

>>> d = np.linspace(0, 2*np.pi, 5)

>>> print (a,b,c,d)

[0 1 2 3 4] [0 1 2 3 4] [0 1 2 3 4] [0. 1.57079633 3.14159265 4.71238898 6.28318531]

同理,我们可以搞一个二维数组

python numpy库教程_python教程1:numpy库_第2张图片

二维数组

注意,它会把数据统一成浮点数(所以看起来1,2,3,4后面都空了许多),因此我们使用时应该注意

然后呢?切片我认为可能是不需要我说什么的了偷一个图过来可以说明一切

python numpy库教程_python教程1:numpy库_第3张图片

python教程1:numpy库

那么这些数组有哪些属性呢

如下,本人的执行过程

>>> import numpy as np

>>> what = np.array([[1,2,3],

... [6,5,4],

... [7,8,9]])

>>> print(what)

[[1 2 3]

[6 5 4]

[7 8 9]]

>>> print(type(what))

#n维数组

>>> print(what.dtype)

int64#数据类型

>>> print(what.shape)

(3, 3)#行数和列数

>>> print(what.size)

9#个数

>>> print(what.itemsize)

8#每个项占用字节数

>>> print(what.ndim)

2#数组z堆数

>>>print(what.nbytes)

72#总消耗字节数

其实的话,完整的构造方法应该如下

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

object

数组或嵌套的数列

dtype

数组元素的数据类型,可选

copy

对象是否需要复制,可选

order

创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)

subok

默认返回一个与基类类型一致的数组

ndmin

指定生成数组的最小维度

其实numpy内置了超级多的函数的,我因为numpy出了点问题,所以有些地方不演示了,介绍一下吧

numpy.char中就定义了许多函数,如下

函数

描述

add()

对两个数组的逐个字符串元素进行连接

multiply()

返回按元素多重连接后的字符串

center()

居中字符串

capitalize()

将字符串第一个字母转换为大写

title()

将字符串的每个单词的第一个字母转换为大写

lower()

数组元素转换为小写

upper()

数组元素转换为大写

split()

指定分隔符对字符串进行分割,并返回数组列表

splitlines()

返回元素中的行列表,以换行符分割

strip()

移除元素开头或者结尾处的特定字符

join()

通过指定分隔符来连接数组中的元素

replace()

使用新字符串替换字符串中的所有子字符串

decode()

数组元素依次调用str.decode

encode()

数组元素依次调用str.encode

这些函数和内置的差不多,只是操作对象不同

当然,怎么能少了数学计算?

NumPy 提供了标准的三角函数:sin()、cos()、tan()。

当然还有反三角函数

食用方法很简单,跳过

然而怎么能少了+-*/呢

NumPy 算术函数包含简单的加减乘除: add(),subtract(),multiply() 和 divide()。

需要注意的是数组必须具有相同的形状或符合数组广播规则。

如图

python numpy库教程_python教程1:numpy库_第4张图片

数组的加减乘除

其实也就是一一对应相加

当然,还有很多呢

numpy.reciprocal() 函数返回参数逐元素的倒数。如 1/4 倒数为 4/1。

numpy.power() 函数将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂。

numpy.mod() 计算输入数组中相应元素的相除后的余数。 函数 numpy.remainder() 也产生相同的结果。

python numpy库教程_python教程1:numpy库_第5张图片

一些操作函数

同时numpy还提供了超级多的用于统计的函数

参考这里

我不做介绍

numpy还提供了一个矩阵库

NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。

一个 的矩阵是一个由行(row)列(column)元素排列成的矩形阵列。

矩阵里的元素可以是数字、符号或数学式。

matlib.empty() 函数返回一个新的矩阵,语法格式为:

numpy.matlib.empty(shape, dtype, order)

shape: 定义新矩阵形状的整数或整数元组

Dtype: 可选,数据类型

order: C(行序优先) 或者 F(列序优先)

当然排序这些什么的我省略了,可以自行尝试

同时

NumPy 提供了线性代数函数库 linalg,该库包含了线性代数所需的所有功能

函数

描述

dot

两个数组的点积,即元素对应相乘。

vdot

两个向量的点积

inner

两个数组的内积

matmul

两个数组的矩阵积

determinant

数组的行列式

solve

求解线性矩阵方程

inv

计算矩阵的乘法逆矩阵

numpy.dot() 对于两个一维的数组,计算的是这两个数组对应下标元素的乘积和(数学上称之为内积);对于二维数组,计算的是两个数组的矩阵乘积;对于多维数组,它的通用计算公式如下,即结果数组中的每个元素都是:数组a的最后一维上的所有元素与数组b的倒数第二位上的所有元素的乘积和:

dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])。

numpy.vdot() 函数是两个向量的点积。 如果第一个参数是复数,那么它的共轭复数会用于计算。 如果参数是多维数组,它会被展开。

numpy.inner() 函数返回一维数组的向量内积。对于更高的维度,它返回最后一个轴上的和的乘积。

…………懒惰的我决定省略留给你们探索

numpy i/o

Numpy 可以读写磁盘上的文本数据或二进制数据。

NumPy 为 ndarray 对象引入了一个简单的文件格式:npy。

npy 文件用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息。

常用的 IO 函数有:

load() 和 save() 函数是读写文件数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npy 的文件中。

savze() 函数用于将多个数组写入文件,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npz 的文件中。

loadtxt() 和 savetxt() 函数处理正常的文本文件(.txt 等)

numpy.save() 函数将数组保存到以 .npy 为扩展名的文件中。

食用方法

numpy.save(file, arr, allow_pickle=True, fix_imports=True)

参数说明:

file:要保存的文件,扩展名为 .npy,如果文件路径末尾没有扩展名 .npy,该扩展名会被自动加上。

arr: 要保存的数组

allow_pickle: 可选,布尔值,允许使用 Python pickles 保存对象数组,Python 中的 pickle 用于在保存到磁盘文件或从磁盘文件读取之前,对对象进行序列化和反序列化。

fix_imports: 可选,为了方便 Pyhton2 中读取 Python3 保存的数据。

numpy.savez() 函数将多个数组保存到以 npz 为扩展名的文件中。

numpy.savez(file, *args, **kwds)

参数说明:

file:要保存的文件,扩展名为 .npz,如果文件路径末尾没有扩展名 .npz,该扩展名会被自动加上。

args: 要保存的数组,可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为 arr_0, arr_1, … 。

kwds: 要保存的数组使用关键字名称。

你可能感兴趣的:(python,numpy库教程)