Numpy学习

1:Numpy简洁

  • NumPy(Numerical Python)是Python数据分析必不可少的第三方库
  • NumPy的出现一定程度上解决了Python运算性能不佳的问题,同时提供了更加精确的数据类型,使其具备了构造复杂数据类型的能力。
  • 本身是由C语言开发,是个很基础的扩展,NumPy被Python其它科学计算包作为基础包,因此理解np的数据类型对python数据分析十分重要。
  • NumPy重在数值计算,主要用于多维数组(矩阵)处理的库。用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多

2:Numpy的属性

ndim:获取数组的维度

shape:获取数组的形状

size:获取数组的元素个数

dtype:获取数组元素的数据类型

type:查看数组的类型

itemsize:获取数组中元素的大小

3:Numpy的ndarray的创建

ndarray介绍

  • NumPy数组是一个多维的数组对象(矩阵),称为**ndarray(N-Dimensional Array)**
  • *具有矢量算术运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点
  • 注意:ndarray的下标从0开始,且数组里的所有元素必须是相同类型。

1:array()的功能是将一个列表转换为数组

2:zeros() /ones()/empty()

函数zeros创建一个全是0的数组,

函数ones创建一个全1的数组,

函数empty创建一个内容随机并且依赖于内存状态的数组。

3:arange(),类似 python 的 range() ,创建一个一维 ndarray 数组。

arange(x,y,z...) x:起始值

y:结束值(不含) z:步长

4:matrix(), 是 ndarray 的子类,只能生成 2 维的矩阵

注意: mat和matrix()功能一样

5:rand()/randint()/uniform()

rand()的功能是生成一个指定形状的随机浮点数数组,范围默认是0-1之间

randint()的功能是生成一个指定形状的随机整数数组,范围需要指定,形状用size指定

uniform()的功能是生成一个指定形状的随机浮点数数组,范围需要指定,形状用size指定

6:astype()的功能是修改数组的数据类型,注意:返回新的

7:logspace()的功能是生成一个等比数组

(x,y,n,base): x起始幂,y结束幂,n个数默认是50个,base基础值默认是10

8:linspace()的功能是生成一个等差数组

(x,y,n): x起始值,y结束值,n个数默认是50个

4:Numpy的内置函数

1:基本函数

python 复制代码
# 基本函数如下
np.ceil(): 向上最接近的整数,参数是 number 或 array
np.floor(): 向下最接近的整数,参数是 number 或 array
np.rint(): 四舍五入,参数是 number 或 array
np.isnan(): 判断元素是否为 NaN(Not a Number),参数是 number 或 array
np.multiply(): 元素相乘,参数是 number 或 array
np.divide(): 元素相除,参数是 number 或 array
np.abs():元素的绝对值,参数是 number 或 array
np.where(condition, x, y): 三元运算符,x if condition else y
# 注意: 需要注意multiply/divide 如果是两个ndarray进行运算 shape必须一致

2:统计函数

python 复制代码
np.mean(), np.sum():所有元素的平均值,所有元素的和,参数是 number 或 array
np.max(), np.min():所有元素的最大值,所有元素的最小值,参数是 number 或 array
np.std(), np.var():所有元素的标准差,所有元素的方差,参数是 number 或 array
np.argmax(), np.argmin():最大值的下标索引值,最小值的下标索引值,参数是 number 或 array
np.cumsum(), np.cumprod():返回一个一维数组,每个元素都是之前所有元素的 累加和 和 累乘积,参数是 number 或 array
 # 多维数组默认统计全部维度,axis参数可以按指定轴心统计,值为0则按列统计,值为1则按行统计。

3:比较函数

python 复制代码
np.any(): 至少有一个元素满足指定条件,返回True
假如我们想要知道矩阵a和矩阵b中对应元素是否有一个相等,我们需要使用any方法。

np.all(): 所有的元素满足指定条件,返回True
假如我们想要知道矩阵a和矩阵b中所有对应元素是否相等,我们需要使用all方法,

4:去重函数

python 复制代码
np.unique():找到唯一值并返回排序结果,类似于Python的set集合

5:排序函数

python 复制代码
numpy.sort(数组):函数排序, 返回排序后的副本
数组.sort():在原数据上进行修改

4:Numpy运算

1:基本运算

数组的算数运算: 是按照元素的。新的数组被创建并且被结果填充。

python 复制代码
# 示例代码
import numpy as np

a = np.array([20, 30, 40, 50])
b = np.arange(4)
c = a - b
print("数组a:", a)
print("数组b:", b)
print("数组运算a-b:", c)

两个ndarray, 一个是arr_a 另一个是arr_b

它们俩之间进行 arr_a + arr_b 或 arr_a - arr_b 或 arr_a * arr_b 这样计算的前提是 shape相同

计算的时候, 位置对应的元素 进行 加减乘除的计算, 计算之后得到的结果的shape 跟arr_a /arr_b 一样

2:矩阵运算

`arr_a.dot(arr_b) 前提` arr_a 列数 = arr_b行数

场景1

python 复制代码
import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[1, 2, 3], [4, 5, 6]])
print(a * b)

print(np.multiply(a, b))

场景2

python 复制代码
import numpy as np

x = np.array([[1, 2, 3], [4, 5, 6]])
y = np.array([[6, 23], [-1, 7], [8, 9]])
print(x)
print(y)
print(x.dot(y))
print(np.dot(x, y))
相关推荐
拾贰_C7 小时前
[python | numpy] numpy& matplotib冲突
开发语言·python·numpy
陈晨辰熟稳重2 天前
20260113-np.random.multinomial 与 torch.multinomial
pytorch·python·numpy·采样·multinomial
charlie1145141913 天前
从 0 开始的机器学习——NumPy 线性代数部分
开发语言·人工智能·学习·线性代数·算法·机器学习·numpy
muddjsv7 天前
NumPy 常用工具:统计、排序、缺失值处理
numpy
muddjsv7 天前
NumPy 核心运算:向量化与广播
numpy
muddjsv7 天前
NumPy 实战:从基础到场景化应用
numpy
A尘埃8 天前
Numpy常用方法介绍
numpy
belldeep8 天前
python:mnist 数据集下载,parse
python·numpy·mnist
佛祖让我来巡山9 天前
Numpy
机器学习·数据分析·numpy·矢量运算