高效数组处理的Numpy入门总结

NumPy是Python中一个重要的数学库,它提供了高效的数组操作和数学函数,是数据科学、机器学习、科学计算等领域的重要工具。下面是一个简单的NumPy学习教程,介绍了NumPy的基本用法和常用函数。

安装NumPy

在使用NumPy之前,需要先安装它。可以使用pip命令来安装NumPy,命令如下:

pip install numpy

导入NumPy

安装NumPy之后,可以使用import语句来导入NumPy库,命令如下:

import numpy as np

在上述代码中,我们使用import语句导入了NumPy库,并将它的别名设置为np。

创建NumPy数组

NumPy中最基本的数据结构是数组(array),可以使用NumPy库中的np.array()函数来创建数组。下面是一个创建一维数组和二维数组的例子:

import numpy as np# 创建一维数组
a = np.array([1, 2, 3])
print(a)# 创建二维数组
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)

输出结果为:

[1 2 3]
[[1 2 3][4 5 6]]

在上述代码中,我们使用np.array()函数创建了一维数组和二维数组,并使用print语句输出了它们的值。

数组属性

NumPy数组有一些重要的属性,例如形状(shape)、维度(ndim)、元素类型(dtype)等。可以使用数组的属性来获取这些信息。下面是一个获取数组属性的例子:

import numpy as np# 创建数组
a = np.array([[1, 2, 3], [4, 5, 6]])# 获取数组属性
print("形状:", a.shape)
print("维度:", a.ndim)
print("元素类型:", a.dtype)

输出结果为:

形状: (2, 3)
维度: 2
元素类型: int64

在上述代码中,我们使用np.array()函数创建了一个二维数组,并使用数组的属性来获取它的形状、维度和元素类型。

数组索引和切片

可以使用索引和切片来访问NumPy数组中的元素。和Python中的列表一样,NumPy数组的索引从0开始,可以使用负数索引从数组末尾开始计数。下面是一个访问数组元素的例子:

import numpy as np# 创建数组
a = np.array([[1, 2, 3], [4, 5, 6]])# 访问数组元素
print(a[0, 1])
print(a[-1, -2])# 切片访问数组元素
print(a[0, :])
print(a[:, 1])
print(a[0:2, 1:3])

输出结果为:

2
5
[1 2 3]
[2 5]
[[2 3][5 6]]

在上述代码中,我们使用np.array()函数创建了一个二维数组,并使用索引和切片来访问它的元素。需要注意的是,使用冒号(:)可以访问整个行或列,例如a[:, 1]表示访问数组的第二列。

数组运算

NumPy数组支持各种数学运算,例如加减乘除、指数、对数、三角函数等。可以使用NumPy库中提供的函数来进行这些运算。下面是一个进行数组运算的例子:

import numpy as np# 创建数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])# 数组运算
print("加法:", a + b)
print("减法:", a - b)
print("乘法:", a * b)
print("除法:", a / b)
print("指数:", np.exp(a))
print("对数:", np.log(a))
print("三角函数:", np.sin(a))

输出结果为:

加法: [5 7 9]
减法: [-3 -3 -3]
乘法: [ 4 10 18]
除法: [0.25 0.4  0.5 ]
指数: [ 2.71828183  7.3890561  20.08553692]
对数: [0.         0.69314718 1.09861229]
三角函数: [0.84147098 0.90929743 0.14112001]

在上述代码中,我们使用np.array()函数创建了两个一维数组,并使用NumPy库中的函数进行了各种数学运算。

广播

广播是NumPy中一种重要的机制,它允许不同形状的数组进行运算。当进行二元运算时,如果两个数组的形状不同,NumPy会自动将它们进行扩展,使它们的形状相同,然后再进行运算。下面是一个使用广播进行数组运算的例子:

import numpy as np# 创建数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])# 广播运算
print("加法:", a + 1)
print("加法:", a + b.reshape(3, 1))

输出结果为:

加法: [2 3 4]
加法: [[5 6 7][6 7 8][7 8 9]]

在上述代码中,我们使用np.array()函数创建了两个一维数组,并使用广播机制进行了各种数学运算。需要注意的是,当进行a + 1的运算时,NumPy会自动将标量1扩展为长度为3的一维数组,然后再进行运算。当进行a + b.reshape(3, 1)的运算时,NumPy会自动将数组b的形状扩展为(3, 1),然后再进行运算。

其他常用函数

NumPy库中还有很多其他常用的函数,例如统计函数、线性代数函数、随机数函数等。下面是一个使用NumPy库中其他函数的例子:

import numpy as np# 创建数组
a = np.array([[1, 2, 3], [4, 5, 6]])# 统计函数
print("最大值:", np.max(a))
print("最小值:", np.min(a))
print("平均值:", np.mean(a))
print("标准差:", np.std(a))# 线性代数函数
b = np.array([[4], [5], [6]])
print("矩阵乘法:", np.dot(a, b))# 随机数函数
print("随机数:", np.random.rand(2, 3))

输出结果为:

最大值: 6
最小值: 1
平均值: 3.5
标准差: 1.707825127659933
矩阵乘法: [[32][77]]
随机数: [[0.66256929 0.59886499 0.06279318][0.44847655 0.28782597 0.83462457]]

在上述代码中,我们使用NumPy库中的统计函数、线性代数函数、随机数函数进行了各种操作。需要注意的是,np.dot()函数用于进行矩阵乘法,np.random.rand()函数用于生成指定形状的随机数数组。

一个简单示例:
在这里插入图片描述

根据二维向量D求解得到和d,可按照以下书写:

D = numpy.dot(V_numpy,F_numpy)
d = numpy.sum(D,axis=-1)#先把二维降为一维
d = numpy.sum(d,axis=-1)*0.5# 把一维降为零维

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

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

相关文章

删除Tencent files

QQ或者TIM卸载后,它还会残留在电脑上.要修改会说需要权限,修改权限又会重新变回去.这时候可以把整个文档放到其它盘,然后就可以删除Tencent files 方法是右键文档 选中属性–位置 然后就可以改掉了

【后端学前端】第三天 css动画 动态搜索框(定位、动态设置宽度)

1、学习信息 视频地址&#xff1a;css动画 动态搜索框&#xff08;定位、动态设置宽度&#xff09;_哔哩哔哩_bilibili 2、源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>test3</title>…

14:00面试,14:08就出来了,问的问题有点变态。。。。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到5月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

Flutter的BuildContext简介

文章目录 BuildContext 简介BuildContext的主要作用 BuildContext 简介 BuildContext是Flutter中的一个重要概念&#xff0c;表示当前Widget在树中的位置上下文。它是一个对Widget树的一个位置的引用&#xff0c;用于查找、访问和操作该位置上的相关信息。每个Widget都有一个关…

VMware Fusion Pro 中文 for mac:好用的虚拟机

VMware Fusion 不仅能让你在 Mac 苹果电脑上运行 Windows 或 Linux 系统、使用非 Mac 平台的软件&#xff0c;而且还可以支持各种 USB硬件设备&#xff0c;它无疑是 macOS 用户的最佳助手。VMWare Fusion 是在 Mac 下虚拟运行 Windows / Linux 的最佳方式 无比轻松地在 Mac 上…

Map、Set集合与Gson注解

一、Map的序列化与反序列化 1.Map集合类型对象在反序列化时与List一样&#xff0c;需要使用TypeToken完成反序列化。 2.Set在反序列化时需要使用TypeToken完成反序列化。 创建User类和job类 public class User {Exposeprivate String userName;Exposeprivate String passwo…

Netflix Mac(奈飞客户端)激活版软件介绍

Netflix Mac(奈飞客户端)是一款流行的视频播放软件&#xff0c;专为Mac用户设计。它提供了大量的高质量电影、电视剧、纪录片和动画片资源&#xff0c;让用户可以随时随地观看自己喜欢的内容。 首先&#xff0c;Netflix Mac(奈飞客户端)以其简洁直观的用户界面而闻名。用户可以…

2024测试开发面试题完整版本(附答案)

目录 1. 什么是软件测试&#xff0c; 谈谈你对软件测试的了解 2. 我看你简历上有写了解常见的开发模型和测试模型, 那你跟我讲一下敏捷模型 3. 我看你简历上还写了挺多开发技能的, 那你给我讲讲哈希表的实现流程 4. 谈一谈什么是线程安全问题, 如何解决 5. 既然你选择走测…

Java - Spring中BeanFactory和FactoryBean的区别

BeanFactory Spring IoC容器的顶级对象&#xff0c;BeanFactory被翻译为“Bean工厂”&#xff0c;在Spring的IoC容器中&#xff0c;“Bean工厂”负责创建Bean对象。 BeanFactory是工厂。 FactoryBean FactoryBean&#xff1a;它是一个Bean&#xff0c;是一个能够辅助Spring实例…

【项目管理】CMMI对项目管理有哪些个人启发和思考

导读&#xff1a;本人作为项目经理参与公司CMMI5级评审相关材料准备工作&#xff0c;现梳理CMMI有关知识点&#xff0c;并结合项目给出部分示例参考&#xff0c;以及本人对于在整理材料过程中一些启发和体验思考。 目录 1、CMMI定义 2、CMMI-5级 3、CMMI文档清单 4、示例-度…

Node.js黑马时钟案例

先上没有使用node.js之前的html部分代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title></title><style>* {margin: 0;padding: 0;}html,body {height: 100%;overflow: hidden;backgrou…

Zabbix+Grafana

背景 对指标采集 将采集的信息存储 可视化 报警 因为节点上本身就是zabbix&#xff0c;但对应的server在数据中心&#xff0c;不知道一个agent可否服务于多个server端&#xff0c;而且不确定数据中心是否会提供用户。所以还是放弃zabbix 架构

如何使用CFImagehost结合内网穿透搭建简洁易用的私人图床并远程访问

文章目录 1.前言2. CFImagehost网站搭建2.1 CFImagehost下载和安装2.2 CFImagehost网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…

OBS如何安装NDI 插件

能检索到这个文章的人&#xff0c;想必是知道什么是OBS和NDI&#xff0c;也知道他们的用途的。所以&#xff0c;不作赘述。4 安装NDI插件 1 直接访问https://github.com/obs-ndi/obs-ndi&#xff0c;打不开的同志你们自己想办法。 2 有两个东西要下载&#xff0c;如下图所示&a…

Python中栈的概念和使用

目录 一、引言 二、栈的概念 三、栈的使用 1、创建栈 2、入栈操作 3、出栈操作 4、查看栈顶元素 5、判断栈是否为空 四、应用场景 1、函数调用 2、表达式求值 3、深度优先搜索 4、括号匹配 五、总结 一、引言 栈是一种重要的数据结构&#xff0c;它遵循后进先出…

Axure元件基本介绍进阶

Axure元件基本介绍进阶 1.Axure元件基本介绍1.在 Axure 中&#xff0c;元件是构建原型的基本构成单元&#xff0c;能够帮助设计师快速创建、重复使用和管理设计元素。以下是 Axure 中元件的基本介绍&#xff1a;1.基本元件&#xff1a; 2.基本元件的使用一.【举例说明】积木&am…

Qt提升绘制效率,绘制加速。

在我们绘制一些复杂逻辑且数据量巨大的图形时&#xff0c;经常会出现流畅性问题&#xff0c;本文就是来进行讲解如何提升绘制效率的。 实现思路&#xff1a; 场景1&#xff1a;我们绘制多个静态图形和绘制一张图片哪个更快。很明显绘制多个图形的时候要慢很多。所以我们将多个图…

【二分查找】【区间合并】LeetCode2589:完成所有任务的最少时间

作者推荐 【动态规划】【广度优先】LeetCode2258:逃离火灾 本文涉及的基础知识点 二分查找算法合集 有序向量的二分查找&#xff0c;向量只会在尾部增加删除。 题目 你有一台电脑&#xff0c;它可以 同时 运行无数个任务。给你一个二维整数数组 tasks &#xff0c;其中 ta…

圣诞节酷炫特效合集【含十几个HTML+CSS前端特效+34个桌面酷炫圣诞程序】

写在前面 ❤️源码获取:订阅后见文末 ❤️内容介绍:包含HTML+CSS等十几个圣诞特效;以及三十四个桌面酷炫圣诞树合集 ❤️订阅后所得如下: ❤️HTML圣诞+桌面圣诞程序效果如下: 下方展示代码仅举例其中几个 所有效果源码及文件订阅后找博主获取即可 🎄css3圣诞雪人动…

基于python的大数据分析与应用环境的搭建

一、主要目的&#xff1a; 初步熟悉Python数据分析工具&#xff0c;通过查阅相关说明文档掌握Numpy、Scipy和Pandas包的基本使用方法。对于不同形式的源数据文件&#xff0c;能够基于python开发环境正确的完成数据导入。 二、主要内容&#xff1a; 1、Python开发环境安装以及…