当前位置: 首页 > news >正文

【自学笔记】Numpy基础知识点总览-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Numpy基础知识点总览
    • 目录
    • 1. 简介
      • Numpy是什么
      • 为什么使用Numpy
    • 2. 数组对象(ndarray)
      • 创建数组
      • 数组的属性
      • 数组的形状操作
    • 3. 数组的基本操作
      • 数组索引与切片
      • 数组的形状改变
      • 数组的类型转换
    • 4. 数学函数与统计方法
      • 数组元素的数学运算
      • 统计函数
      • 线性代数运算
    • 5. 广播机制
      • 什么是广播
      • 广播的规则与示例
    • 6. 文件操作
      • 读取与保存数组到文件
    • 7. 随机数的生成
      • 生成随机数的方法
  • 总结


Numpy基础知识点总览

目录

  1. 简介

    • Numpy是什么
    • 为什么使用Numpy
  2. 数组对象(ndarray)

    • 创建数组
    • 数组的属性
    • 数组的形状操作
  3. 数组的基本操作

    • 数组索引与切片
    • 数组的形状改变
    • 数组的类型转换
  4. 数学函数与统计方法

    • 数组元素的数学运算
    • 统计函数
    • 线性代数运算
  5. 广播机制

    • 什么是广播
    • 广播的规则与示例
  6. 文件操作

    • 读取与保存数组到文件
  7. 随机数的生成

    • 生成随机数的方法

1. 简介

Numpy是什么

Numpy(Numerical Python)是Python的一个开源数值计算扩展库,用于存储和处理大型矩阵。它提供了大量的数学函数和操作这些矩阵的方法。

为什么使用Numpy

  • Numpy数组在存储和计算大型数据时比Python原生列表更高效。
  • Numpy提供了大量的数学函数和线性代数运算,简化了科学计算。

2. 数组对象(ndarray)

创建数组

import numpy as np# 一维数组
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)# 二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)# 使用特殊函数创建数组
zeros = np.zeros((2, 3))  # 创建一个2x3的零数组
ones = np.ones((2, 3))    # 创建一个2x3的全1数组
print(zeros)
print(ones)

数组的属性

print(arr2.shape)       # 输出数组的形状
print(arr2.dtype)       # 输出数组的数据类型
print(arr2.size)        # 输出数组的元素个数
print(arr2.ndim)        # 输出数组的维度

数组的形状操作

# 改变数组的形状
arr2_reshaped = arr2.reshape((3, 2))
print(arr2_reshaped)# 数组转置
arr2_transposed = arr2.T
print(arr2_transposed)

3. 数组的基本操作

数组索引与切片

# 一维数组索引与切片
print(arr1[0])          # 输出第一个元素
print(arr1[1:4])        # 输出第二个到第四个元素# 二维数组索引与切片
print(arr2[0, 1])       # 输出第一行第二列的元素
print(arr2[0, :])       # 输出第一行的所有元素
print(arr2[:, 1])       # 输出所有行的第二列元素

数组的形状改变

# 使用ravel()将二维数组展平为一维数组
arr2_flattened = arr2.ravel()
print(arr2_flattened)# 使用resize()改变数组的形状
arr2.resize((3, 1))
print(arr2)

数组的类型转换

# 将数组转换为浮点型
arr2_float = arr2.astype(np.float64)
print(arr2_float)

4. 数学函数与统计方法

数组元素的数学运算

# 元素级运算
arr3 = np.array([1, 2, 3])
arr4 = np.array([4, 5, 6])
print(arr3 + arr4)  # 对应元素相加
print(arr3 * arr4)  # 对应元素相乘

统计函数

# 计算数组的基本统计量
print(np.mean(arr1))       # 平均值
print(np.median(arr1))     # 中位数
print(np.std(arr1))        # 标准差
print(np.var(arr1))        # 方差
print(np.max(arr1))        # 最大值
print(np.min(arr1))        # 最小值

线性代数运算

# 创建两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])# 矩阵乘法
print(np.dot(A, B))# 矩阵的逆
print(np.linalg.inv(A))

5. 广播机制

什么是广播

广播是numpy中用于在不同形状的数组之间执行算术运算的一种机制。

广播的规则与示例

# 示例1:一维数组与标量运算
arr5 = np.array([1, 2, 3])
print(arr5 + 10)  # 每个元素都加上10# 示例2:形状兼容的数组运算
arr6 = np.array([[1, 2], [3, 4]])
arr7 = np.array([5, 6])
print(arr6 + arr7)  # arr7会被广播到与arr6相同的形状

6. 文件操作

读取与保存数组到文件

# 保存数组到文本文件
np.savetxt('array.txt', arr2, delimiter=',')# 从文本文件读取数组
loaded_array = np.loadtxt('array.txt', delimiter=',')
print(loaded_array)

7. 随机数的生成

生成随机数的方法

# 生成一个0到1之间的随机浮点数
print(np.random.rand())# 生成一个指定形状的数组,数组元素为0到1之间的随机浮点数
print(np.random.rand(2, 3))# 生成一个指定范围内的随机整数
print(np.random.randint(low=0, high=10, size=(2, 3)))# 生成一个服从正态分布的随机数数组
print(np.random.randn(2, 3))

希望这份Numpy基础知识点总览和代码示例能帮助你更好地学习和分享Numpy的相关知识。如果有任何疑问或需要进一步的解释,请随时提问。

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,自学记录Numpy基础知识点总览。

相关文章:

【自学笔记】Numpy基础知识点总览-持续更新

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Numpy基础知识点总览目录1. 简介Numpy是什么为什么使用Numpy 2. 数组对象(ndarray)创建数组数组的属性数组的形状操作 3. 数组的基本操作数组…...

大模型gpt结合drawio绘制流程图

draw下载地址 根据不同操作系统选择不同的安装 截图给gpt 并让他生成drawio格式的,选上推理 在本地将生成的内容保存为xml格式 使用drawio打开 保存的xml文件 只能说效果一般。...

3.8【Q】cv

这个draw_line函数的逻辑和功能是什么?代码思路是什么?怎么写的? 这个t是什么?t.v[0]和t.v[1],[2]又是什么? void rst::rasterizer::draw(rst::pos_buf_id pos_buffer, rst::ind_buf_id ind_buffer, rst::Primitive ty…...

STM32F10XXX标准库函数及外设结构体

时钟 APB1 void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState):使能或失能 APB1 时钟 参数 可赋值 描述 RCC_APB1Periph RCC_APB1Periph_TIM2 RCC_APB1Periph_TIM3 RCC_APB1Periph_TIM4 RCC_APB1Periph_TIM5 RCC_APB1Peri…...

计算机毕业设计SpringBoot+Vue.js车辆管理系统(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

剖析Manus:AI领域的创新先锋还是虚假泡沫?

在AI技术迅猛发展的当下,新的智能体不断涌现,其中Manus的出现可谓是一石激起千层浪。近期,OpenManus以极快速度复刻Manus,引发了广泛关注,但这也让我们更有必要深入剖析Manus,探究它究竟是货真价实的创新突…...

编程考古-Borland历史:《.EXE Interview》对Anders Hejlsberg关于Delphi的采访内容(中)

为了纪念Delphi在2002年2月14日发布的25周年(2020.2.12),这里有一段由.EXE杂志编辑Will Watts于1995年对Delphi首席架构师Anders Hejlsberg进行的采访记录。在这次采访中,Anders讨论了Delphi的设计与发展,以及即将到来的针对Windows 95的32位版本。 Q. 编译器引擎本身是用…...

GB28181视频平台LiveGBS在设置公网IP收流时,如何自定义修改收流端口区间

LiveGBS GB28181流媒体服务在接收视频的时候默认是使用30000-30249, webrtc流播放端口区间默认是UDP的30250-30500区间。有些网络环境不方便开放这么大的端口区间,下面介绍下如何修改配置这个区间。 从页面上修改这个区间,端口区间尽量设置大…...

【ubuntu20】--- 搭建 gerrit 最新最详细

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 【ubuntu20】--- 搭建 gerrit 最新最详细…...

HCIA-DHCP

1、定义:DHCP即动态主机配置协议,通过C/S模型架构,无需主机配置IP地址,自动分配网络配置参数的网络协议。 2、作用 对比项目无 DHCP有 DHCP配置难度配置多,容易出错自动为客户端分配 IP 地址及其他网络配置参数&…...

wxWidgets GUI 跨平台 入门学习笔记

准备 参考 https://wiki.wxwidgets.org/Microsoft_Visual_C_NuGethttps://wiki.wxwidgets.org/Tools#Rapid_Application_Development_.2F_GUI_Buildershttps://docs.wxwidgets.org/3.2/https://docs.wxwidgets.org/latest/overview_helloworld.htmlhttps://wizardforcel.gitb…...

OmniParser技术分析(一)

1.引言 通过上篇文章介绍 OmniParser:下一代纯视觉UI自动化测试先驱相信大家已经对OmniParser有初步了解,接下来详细介绍下OmniParser使用了哪些技术模型实现了对UI纯视觉的检测和理解。 2.整体方案 通过阅读OmniParser提供的运行Demo代码知道,其实整…...

什么是hive

Apache Hive 是一个基于 Hadoop 生态系统构建的数据仓库工具,主要用于处理和分析大规模的结构化数据。它允许用户通过类似 SQL 的查询语言(HiveQL)进行数据操作,而无需直接编写复杂的 MapReduce 程序。以下是 Hive 的核心特点和应…...

PyTorch系列教程:Tensor.view() 方法详解

这篇简明扼要的文章是关于PyTorch中的tensor.view()方法的介绍与应用,与reshape()方法的区别,同时给出示例进行详细解释。 Tensor基础 Tensor(张量)的视图是一个新的Tensor,它与原始Tensor共享相同的底层数据,但具有不同的形状或…...

从零开始了解Manus(文末附教程)

大家好,我是樱木。 《从零开始了解Manus》,这个教程对于想了解 Manus的同学,全部都在里面了! Manus 是一款能像真人一样帮你干活的AI助手,运行在云端,不占电脑内存。 它可以自动完成复杂任务&#xff0c…...

不同开发语言之for循环的用法、区别总结

一、Objective-C &#xff08;1&#xff09;标准的c风格 for (int i 0; i < 5; i) {NSLog("i %d", i); } &#xff08;2&#xff09;for in循环。 NSArray *array ["apple", "banana", "orange"]; for (NSString *fruit in …...

CentOS 7 aarch64上制作kernel rpm二进制包 —— 筑梦之路

环境说明 centos 7 aarch64 gcc 8.3.1 kernel 5.4.290 准备编译制作 # 安装必要的工具和包yum install rpm-devel rpmdevtools yum groupinstall "Development Tools"yum install ncurses-devel bc elfutils-libelf-devel openssl-devel # 安装gcc 8.3.1# 修改…...

Cursor 使用经验,一个需求开发全流程

软件开发中 Cursor 的使用经验成为关注焦点&#xff0c;尤其是处理大型数据集的需求。用户提到“Cursor 使用经验&#xff0c;一个需求开发全流程”&#xff0c;但“Cursor”可能指数据库游标&#xff0c;涉及逐行处理数据。本文将详细探讨开发一个需求的完整流程&#xff0c;包…...

2025-03-08 学习记录--C/C++-PTA 习题9-2 计算两个复数之积

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 二、代码&#xff08;C语言&#xff09;⭐️ #include <stdio.h>struct complex{int real;int imag; …...

DeepSeek-R1本地化部署(Mac)

一、下载 Ollama 本地化部署需要用到 Ollama&#xff0c;它能支持很多大模型。官方网站&#xff1a;https://ollama.com/ 点击 Download 即可&#xff0c;支持macOS,Linux 和 Windows&#xff1b;我下载的是 mac 版本&#xff0c;要求macOS 11 Big Sur or later&#xff0c;Ol…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...