【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、模块导入

import numpy as np

2、生成数组的方法

1)生成0和1

np.zeros(shape)
np.ones(shape)

2)从现有数组中生成

# 深拷贝
np.array()
np.copy()# 浅拷贝
np.asarray()

3)生成固定范围的数组

# [a, b] 数量c
np.linspace(a, b, c)
# [a, b) 步长c
np.arange(a, b, c)

4)生成随机数组

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

正态分布:μ、σ

# 均匀分布 (a, b) 数量c
np.random.uniform(a, b, c)# 正态分布 数量c
np.random.normal(μ, σ, c)

3、数组的索引、切片

score[0, :3]
score[1, 1]

4、形状修改

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

5、类型修改

# 类型修改
ndarray.astype(type)

6、序列化

# ndarray序列化到本地
ndarray.tostring()

7、数组的去重

np.unique(ndarray)

三、ndarray运算

1、逻辑运算

# 逻辑运算
change > 0# 布尔索引
change[change > 0]

# 通用判断函数
np.all(change > 0)
np.any(change > 0)

# 三元运算符
np.where(布尔值, True的位置的值, False的位置的值)

# 逻辑或 逻辑与
np.logical_and(change > 0.5, change < 0.8)
np.logical_or()

2、统计运算

统计指标函数

min, max, mean, median, var, std

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

np.argmax(temp, axis=)
np.argmin(temp, axis=)

3、数组与数的运算

change * 10
change + 5

4、数组与数组的运算

广播机制

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

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

5、矩阵运算

1)存储矩阵

  1. ndarray 二维数组
  2. matrix 数据结构
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)

# 对于 ndarray 存储
np.matmul(d1, d3)
np.dot(d1, d3)
d1 @ d3

# 对于 matrix 存储
d2 * d4

四、IO操作

1、Numpy读取

np.genfromtxt("test.csv", delimiter=",")

2、缺失值的处理

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

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

不如pandas好用!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/175519.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux中at命令添加一次性任务

1、工作原理 功能&#xff1a;在某个时间点&#xff0c;执行一次命令。 特点&#xff1a;任务是用户隔离的。 条件&#xff1a;必须要保证atd进程存在。 ps -ef |grep atd 原理&#xff1a;atd进程循环遍历队列里的任务&#xff0c;有则按顺序执行任务&#xff0c;没有&#x…

树的概念及结构|树的三种表示方法

前言 以前我们学的线性结构是一对一的线性关系&#xff0c;但现实中&#xff0c;还有一对多的情况要处理&#xff0c;那就是树形结构。今天我们将学习树的概念及结构、和树的三种常见表示方法。 一、树的概念及结构 1、树的概念 树是一种非线性的数据结构&#xff0c;它是由n…

数据结构——带头双向循环链表

呀哈喽&#xff0c;我是结衣。 前言 说到链表前面我们讲了单链表&#xff0c;但是链表可不止一种&#xff0c;要分类的话。链表可以分为带头或不带头&#xff0c;单向或双向&#xff0c;循环或者不循环&#xff0c;也就是说链表一共应该是有8种结构的&#xff0c;我们上次讲的…

vim批量多行缩进调整

网上其他教程&#xff1a; ctrl v 或者 v进行visual模式按方向键<&#xff0c;>调整光标位置选中缩进的行Shift > &#xff08;或者 Shift < &#xff09;进行左右缩进。 我只想说&#xff0c;乱七八糟&#xff0c;根本不管用 本文教程&#xff1a; 增加缩进…

HTTP/2.0协议详解

前言 HTTP/2.0&#xff1a;互联网通信的革新标准 随着互联网技术的飞速发展&#xff0c;HTTP协议作为互联网应用最广泛的通信协议&#xff0c;也在不断演进和优化。HTTP/2.0是HTTP协议的最新版本&#xff0c;它旨在提供更高效、更安全、更快速的互联网连接。 一、HTTP/2.0的…

深入理解JVM虚拟机第二十五篇:详解JVM方法的绑定机制静态绑定和动态绑定,早期绑定晚期绑定,并编写代码从字节码角度证明这件事情

大神链接&#xff1a;作者有幸结识技术大神孙哥为好友&#xff0c;获益匪浅。现在把孙哥视频分享给大家。 孙哥链接&#xff1a;孙哥个人主页 作者简介&#xff1a;一个颜值99分&#xff0c;只比孙哥差一点的程序员 本专栏简介&#xff1a;话不多说&#xff0c;让我们一起干翻J…

Windows系统隐藏窗口启动控制台程序

背景 上线项目有时候需要一些控制台应用作为辅助服务来协助UI应用满足实际需求&#xff0c;这时候如果一运行UI就冒出一系列的黑框&#xff0c;这将会导致客户被下的不起&#xff0c;生怕中了什么不知名病毒 方案 可以使用vbs来启动&#xff0c;这个是window系统自带的&#…

【2014年数据结构真题】

41. (13分&#xff09;二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和。 给定一棵二叉树T,采用二叉链表存储&#xff0c;结点结构如下&#xff1a; 其中叶结点的weight域保存该结点的非负权值。 设root为指向T的根结点的指针&#xff0c; 请设计求T 的WPL…

计算机 - - - 浏览器网页打开本地exe程序,网页打开微信,网页打开迅雷

效果 在电脑中安装了微信和迅雷&#xff0c;可以通过在地址栏中输入weixin:打开微信&#xff0c;输入magnet:打开迅雷。 同理&#xff1a;在网页中使用a标签&#xff0c;点击后跳转链接打开weixin:&#xff0c;也会同样打开微信。 运用同样的原理&#xff0c;在网页中点击超…

reactive和effect,依赖收集触发依赖

通过上一篇文章已经初始化项目&#xff0c;集成了ts和jest。本篇实现Vue3中响应式模块里的reactive方法。 前置知识要求 如果你熟练掌握Map, Set, Proxy, Reflect&#xff0c;可直接跳过这部分。 Map Map是一种用于存储键值对的集合&#xff0c;并且能够记住键的原始插入顺…

前端开发入门笔记(八)CSS3属性详解:动画详解+Flex布局图文详解+Web字体

参考链接&#xff1a;https://web.qianguyihao.com/02-CSS%E5%9F%BA%E7%A1%80/12-CSS3%E5%B1%9E%E6%80%A7%E8%AF%A6%E8%A7%A3%EF%BC%9A%E5%8A%A8%E7%94%BB%E8%AF%A6%E8%A7%A3.html#_3%E3%80%81%E6%97%8B%E8%BD%AC%EF%BC%9Arotate 过渡 transition的中文含义是过渡。过渡是CSS…

双写绕过 [极客大挑战 2019]BabySQL 1

打开题目 随便输入账号密码 根据报错信息可知这是单引号的字符型注入 那我们试试万能密码 1 or 11 页面报错 1 or 11 页面报错 而且根据报错内容显示是没有我们注入上去的or的 那我们就试试 1 order by 3 # 页面报错&#xff0c;根据报错显示页面过滤掉了or和by 那我们…