【Python】Numpy(学习笔记)

一、Numpy概述

1、Numpy

Numpy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组。

Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器,

Numpy

  • num - numerical 数值化的
  • py - python

ndarray

  • n - 任意个
  • d - dimension 维度
  • array - 数组

2、ndarray优势

ndarray比原生list运行效率高

存储风格

  • ndarray - 相同类型 - 通用性不强
  • list - 不同类型 - 通用性很强

并行化运算

ndarray支持并行化运算(向量化运算)

底层语言

C语言,解除了GIL(全局解释器索)

3、ndarray属性

shape:数组维度的元组

ndim:数组维度

size:数组中的元素数量

itemsize:一个数组元素的长度

dtype:数组元素的类型

在创建ndarray的时候,如果没有指定类型

默认:整数 int64、浮点数 float64

二、基本操作

1、模块导入

python 复制代码
import numpy as np

2、生成数组的方法

1)生成0和1

python 复制代码
np.zeros(shape)
np.ones(shape)

2)从现有数组中生成

python 复制代码
# 深拷贝
np.array()
np.copy()

# 浅拷贝
np.asarray()

3)生成固定范围的数组

python 复制代码
# [a, b] 数量c
np.linspace(a, b, c)
# [a, b) 步长c
np.arange(a, b, c)

4)生成随机数组

均匀分布:每组的可能性相等

正态分布:μ、σ

python 复制代码
# 均匀分布 (a, b) 数量c
np.random.uniform(a, b, c)

# 正态分布 数量c
np.random.normal(μ, σ, c)

3、数组的索引、切片

python 复制代码
score[0, :3]
score[1, 1]

4、形状修改

python 复制代码
ndarray.reshape(shape) 	# 返回新的ndarray,原始数据没有改变
ndarray.resize(shape) 	# 没有返回值,对原始的ndarray进行了修改
ndarray.T 				# 转置 行变成列,列变成行

5、类型修改

python 复制代码
# 类型修改
ndarray.astype(type)

6、序列化

python 复制代码
# ndarray序列化到本地
ndarray.tostring()

7、数组的去重

python 复制代码
np.unique(ndarray)

三、ndarray运算

1、逻辑运算

python 复制代码
# 逻辑运算
change > 0

# 布尔索引
change[change > 0]
python 复制代码
# 通用判断函数
np.all(change > 0)
np.any(change > 0)
python 复制代码
# 三元运算符
np.where(布尔值, True的位置的值, False的位置的值)
python 复制代码
# 逻辑或 逻辑与
np.logical_and(change > 0.5, change < 0.8)
np.logical_or()

2、统计运算

统计指标函数

min, max, mean, median, var, std

返回最大值、最小值所在位置

python 复制代码
np.argmax(temp, axis=)
np.argmin(temp, axis=)

3、数组与数的运算

python 复制代码
change * 10
change + 5

4、数组与数组的运算

广播机制

执行 broadcast 的前提在于,两个 ndarray 执行的是 element-wise 的运算,Broadcast机制的功能是为了方便不同形状的ndarray(numpy库的核心数据结构) 进行数学运算。

  1. 维度相等
  2. shape(其中相对应的一个地方为1)

5、矩阵运算

1)存储矩阵

  1. ndarray 二维数组
  2. matrix 数据结构
python 复制代码
d1 = np.array([[0, 1, 2], [3, 4, 5]]) 
d2 = np.mat([[0, 1, 2], [3, 4, 5]])

2)矩阵乘法

形状要求:(m, n) * (n, l) = (m, l)

python 复制代码
# 对于 ndarray 存储
np.matmul(d1, d3)
np.dot(d1, d3)
d1 @ d3
python 复制代码
# 对于 matrix 存储
d2 * d4

四、IO操作

1、Numpy读取

python 复制代码
np.genfromtxt("test.csv", delimiter=",")

2、缺失值的处理

1、直接删除含有缺失值的样本

2、替换/插补:按列求平均,用平均值进行填补

不如pandas好用!!

相关推荐
Q_Q19632884755 小时前
python+django/flask基于协同过滤算法的理财产品推荐系统
spring boot·python·django·flask·node.js·php
高洁015 小时前
面向强化学习的状态空间建模:RSSM的介绍和PyTorch实现(3)
人工智能·python·深度学习·神经网络·transformer
aloha_7895 小时前
测试开发工程师面经准备(sxf)
java·python·leetcode·压力测试
小狗爱吃黄桃罐头5 小时前
正点原子【第四期】Linux之驱动开发学习笔记-10.1 Linux 内核定时器实验
linux·驱动开发·学习
im_AMBER6 小时前
Leetcode 47
数据结构·c++·笔记·学习·算法·leetcode
Jonathan Star6 小时前
MediaPipe 在Python中实现人体运动识别,最常用且高效的方案是结合**姿态估计**(提取人体关键点)和**动作分类**(识别具体运动)
开发语言·python·分类
BreezeJuvenile6 小时前
外设模块学习(17)——5V继电器模块(STM32)
stm32·单片机·嵌入式硬件·学习·5v继电器模块
山顶听风6 小时前
分页条初始化
python
一个数据大开发6 小时前
【零基础一站式指南】Conda 学习环境准备与 Jupyter/PyCharm 完全配置
学习·jupyter·conda
NewsMash7 小时前
PyTorch之父发离职长文,告别Meta
人工智能·pytorch·python