numpy之linspace()函数使用详解

2024-03-30 01:04

本文主要是介绍numpy之linspace()函数使用详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

numpy之linspace()函数使用详解

linspace() 函数

作为序列生成器, numpy.linspace()函数用于在线性空间中以均匀步长生成数字序列。

Numpy通常可以使用numpy.arange()生成序列,但是当我们使用浮点参数时,可能会导致精度损失,这可能会导致不可预测的输出。为了避免由于浮点精度而造成的任何精度损失,numpy在numpy.linspace()为我们提供了一个单独的序列生成器,如果您已经知道所需的元素数,则这是首选。 但是通常使用带有适当参数的linspace()和 arange()可以得到相同的输出,因此可以为同一任务选择两者。

例如,以下代码使用numpy.linspace()在0到10之间绘制2个线性序列,以显示该序列生成的均匀性。

import numpy as np

import matplotlib.pyplot as plt

y = np.zeros(5)

x1 = np.linspace(0, 10, 5)

x2 = np.linspace(0, 10, 5)

plt.plot(x1, y, 'o')

plt.plot(x2, y + 0.5, 'o')

plt.ylim([-0.5, 1])

plt.show()

输出 :

lan

语法:

格式: array = numpy.linspace(start, end, num=num_points)将在startend之间生成一个统一的序列,共有num_points个元素。

  • start -> Starting point (included) of the rangestart ->范围的起点(包括)
  • end -> Endpoint (included) of the rangeend ->范围的端点(包括)
  • num -> Total number of points in the sequencenum >序列中的总点数

让我们通过几个示例来理解这一点:

import numpy as np

a = np.linspace(0.02, 2, 10)

print('Linear Sequence from 0.02 to 2:', a)

print('Length:', len(a))

输出

Linear Sequence from 0.02 to 2: [0.02 0.24 0.46 0.68 0.9  1.12 1.34 1.56 1.78 2.  ]

Length: 10

上面的代码段生成了0.02到2之间的均匀序列,其中包含10个元素。

endpoint 关键字参数

如果您不想在序列计算中包括最后一点,则可以使用另一个关键字参数endpoint ,可以将其设置为False 。 (默认为True )

import numpy as np

a = np.linspace(0.02, 2, 10, endpoint=False)

print('Linear Sequence from 0.02 to 2:', a)

print('Length:', len(a))

输出

Linear Sequence from 0.02 to 2: [0.02  0.218 0.416 0.614 0.812 1.01  1.208 1.406 1.604 1.802]

Length: 10

如您所见,最后一点(2)没有包含在序列中,因此步长也不同,这将产生一个完全不同的序列。

retstep 关键字参数 

这是一个布尔型可选参数(如果已指定),还将返回步长以及序列数组,从而产生一个元组作为输出

import numpy as np

a = np.linspace(0.02, 2, 10, retstep=True)

print('Linear Sequence from 0.02 to 2:', a)

print('Length:', len(a))

输出

Linear Sequence from 0.02 to 2: (array([0.02, 0.24, 0.46, 0.68, 0.9 , 1.12, 1.34, 1.56, 1.78, 2.  ]), 0.22)

Length: 2

由于输出是元组,因此它的长度是2,而不是10!

axis 关键字参数 

这将在结果中设置轴以存储样本。 仅当开始和端点为数组数据类型时才使用它。

默认情况下( axis=0 ),采样将沿着在开始处插入的新轴进行。 我们可以使用axis=-1来获得末端的轴。

import numpy as np

p = np.array([[1, 2], [3, 4]])

q = np.array([[5, 6], [7, 8]])

r = np.linspace(p, q, 3, axis=0)

print(r)

s = np.linspace(p, q, 3, axis=1)

print(s)

输出

array([[[1., 2.],

        [3., 4.]],

       [[3., 4.],

        [5., 6.]],

       [[5., 6.],

        [7., 8.]]])

array([[[1., 2.],

        [3., 4.],

        [5., 6.]],

       [[3., 4.],

        [5., 6.],

        [7., 8.]]])

在第一种情况下,由于axis = 0 ,我们从第一个轴获取序列限制。

在这里,限制是子数组对[1, 2] and [5,6]以及[3, 4] and [7,8] ,它们取自pq的第一轴。 现在,我们比较结果对中的相应元素以生成序列。

因此,第一行的顺序为[[1 to 5], [2 to 6]] ,第二行的顺序为[[1 to 5], [2 to 6]] [[3 to 7], [4 to 8]] ,对其进行评估并组合形成[ [[1, 2], [3, 4]], [[3, 4], [5, 6]], [[5, 6], [7,8]] ] 。

第二种情况将在axis=1或列中插入新元素。 因此,新轴将通过列序列生成。 而不是行序列。

考虑序列[1, 2] to [5, 7][3, 4] to [7, 8]并将其插入到结果的列中,得到[[[1, 2], [3, 4], [5, 6]], [[3, 4], [5, 6], [7, 8]]] 。

推荐好课:Python3进阶:数据分析及可视化、Python 自动化办公

这篇关于numpy之linspace()函数使用详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/860129

相关文章

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java