numpy和matplotlib的学习笔记
numpy
定义:numpy(numerical python) 是 python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。它主要用于数组计算,包括:
- 一个强大的n维数组对象 ndarray
- 广播功能函数
- 整合 c/c++/fortran 代码的工具
- 线性代数、傅里叶变换、随机数生成等功能
1、ndarray : ndarray是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。创建一个 ndarray 只需调用 numpy 的 array 函数即可。
2、参数说明:
名称 | 描述 |
object | 数组或嵌套的数列 |
dtype | 数组元素的数据类型,可选 |
copy | 对象是否需要复制,可选 |
order | 创建数组的样式,c为行方向,f为列方向,a为任意方向(默认) |
subok | 默认返回一个与基类型一致的数组 |
ndmin | 指定生成数组的最小维度 |
实例:
3、数据类型
名称 | 描述 |
bool_ | 布尔型数据类型(true 或者 false) |
int_ | 默认的整数类型(类似于 c 语言中的 long,int32 或 int64) |
intc | 与 c 的 int 类型一样,一般是 int32 或 int 64 |
int32 | 整数(-2147483648 to 2147483647) |
uint8 | 无符号整数(0 to 255) |
float_ | float64 类型的简写 |
complex_ | complex128 类型的简写,即 128 位复数 |
numpy.dtype(object, align, copy) : object - 要转换为的数据类型对象; align - 如果为 true,填充字段使其类似 c 的结构体; copy - 复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用。
实例:
4、数组属性
(1)numpy 数组的维数称为秩(rank),秩就是轴的数量,即数组的维度,一维数组的秩为 1,二维数组的秩为 2,以此类推。每一个线性的数组称为是一个轴(axis),也就是维度(dimensions)。比如说,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组。
属性 | 说明 |
ndarray.ndim | 秩,即轴的数量或维度的数量 |
ndarray.shape | 数组的维度,对于矩阵,n 行 m 列 |
ndarray.size | 数组元素的总个数,相当于 .shape 中 n*m 的值 |
ndarray.dtype | ndarray 对象的元素类型 |
ndarray.real(imag) | ndarray元素的实(虚)部 |
ndarray.itemsize | ndarray 对象中每个元素的大小,以字节为单位 |
实例:
5、创建数组
- numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组 numpy.empty(shape, dtype = float, order = 'c')
-
numpy.zeros 创建指定大小的数组,数组元素以 0 来填充 numpy.zeros(shape, dtype = float, order = 'c')
-
numpy.ones 创建指定形状的数组,数组元素以 1 来填充 numpy.ones(shape, dtype = none, order = 'c')
- numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个
- numpy.arange 函数创建数值范围并返回 ndarray 对象 numpy.arange(start, stop, step, dtype) (start:起始值,默认为
0 ;stop:终止值(不包含) step:步长,默认为
1; dtype:返回
ndarray
的数据类型,如果没有提供,则会使用输入数据的类型。)
7、切片和索引: slice 函数
8、广播:对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。
9、matplotlib:
实例:
import numpy as np
from matplotlib import pyplot as plt
x = np.arange(1,11)
y = 2 * x - 1
plt.title("demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x,y)
plt.show()
效果: