numpy - array(5)

np.random.seed(1)
arr1 = np.random.randint(0, 50, (2, 3, 5))
(1) def sort(a, axis=-1, kind=None, order=None)
        返回目标array在指定轴上的数据按自然序(从小到大)进行排序组成的array
属于快速排序,操作不对原array进行更改
a:目标array
axis 接受单个int或者None,默认值为-1,即对最深维度/最大维度进行排序,传None则将原array转成向量再进行操作
        arr_sort1 = np.sort(arr1)
        arr_sort2 = np.sort(arr1, 0)
        arr_sort3 = np.sort(arr1, axis=None)
(2)def argsort(a, axis=-1, kind=None, order=None)
        返回原array排序后的元素在原array上的索引组成的array
 a, axis用法同sort方法
        arr_argsort1 = np.argsort(a=arr1, axis=1)
(3)ndRRy.sort()
         排序操作直接对原array进行排序更改,没有返回值
 axis用法同sort方法
        np.random.seed(2)
        arr2 = np.random.randint(0, 50, (2, 3, 5))
        np.ndarray.sort(arr2, 1)
        print(arr2)
(4) array[::-1] 切片逆序:可指定维度进行逆序操作
        arr_reverse1 = arr_sort1[:, :, ::-1]
(5) def flip(m, axis=None) 返回目标array沿给定轴反转数组中元素的顺序的新array
 m:目标array
 axis:接受int或int数组或者None。默认值为None,沿所有轴进行反转
        arr_flip1 = np.flip(arr1)
        arr_flip2 = np.flip(arr1, 0)
        arr_flip3 = np.flip(arr1, (2, 1))
 (6) " == "  同型(结构相同)array进行逐个比对得到一个元素都是bool值的array(严格意义上的比对),或者array的每个元素与一个常数进行比对
        arr_bool1 = arr1 == arr_sort1
        arr_bool2 = arr1 == 23
(7) def allclose(a, b, rtol=1.e-5, atol=1.e-8, equal_nan=False)
 按照规则对两个array的元素进行逐个近似比对,如果所有比对值都为True 返回True,比对值有False则 返回False
 比对规则:满足|e1 - e2| <= (atol + rtol *|e2|) 则为True
 a, b:要比较的两个数组。
 rtol:相对容差,默认值为 1e-05。它是相对于 arr2 数组元素大小的容差。
 atol:绝对容差,默认值为 1e-08。它是无论 arr2 元素大小如何都适用的容差。
 equal_nan:布尔值,指示是否将 NaN视为相等。默认为 False。
        arr3 = np.array([(1, 2, 3), (4, 5, 6)])
        arr4 = np.array([(2, 3, 4), (5, 6, 7)])
        bool1 = np.allclose(arr3, arr4, atol=1)
        bool2 = np.allclose(arr3, arr4)
(8)def where(condition, x=None, y=None)
condition(条件):接受元素为bool值的array或者单个bool值。如果只传单个bool值,则会被转化为array进行操作。(bool以外其他类型值遵循强转原则,使用前需先确认)
 x,y:接受array或者None,根据condition的判断返回x或y
(1)当where参数只传了condition = target_array,则返回target_array的元素中为True的元素的各维度索引组成的元组(index_tuple)组成的元组(res_tuple)
 res_tuple的尺寸 = target_array的维度(个数)且 res_tuple的索引 与 target_array的维度一一对应
 index_tuple存储了target_array对应维度上的所有为True的元素的索引
        np.random.seed(1)
        arr5 = np.random.randint(-50, 50, (2, 3, 5))
        dim0s_1, dim1s_1, dim2s_1 = np.where(arr5)  
        arr6 = arr5 > 0
        dims2 = np.where(arr6)
        dim0s_2, dim1s_2, dim2s_2 = np.where(arr6)
        arr7 = np.array([True, 'a', False, True, False, False])
        arr8 = np.array([[True, 'a', '', False]])
        dims3 = np.where(arr7)[0]
        dims4 = np.where(arr8)
 (2)当where参数传了condition,又传了X,Y
    (2.1)当condition传单个值的时候,可接受bool、数字、None,不接受str
    (2.1.1)当X,Y都传单个值,condition为True返回X,condition为False返回Y
        
        res_single1 = np.where(None, None, 6)
    (2.1.2)当X,Y都传Array,那么X,Y必须是同形的。
    condition为True返回X,condition为False返回Y,(传元组或列表会自动转成array操作)
        res_single3 = np.where(2.5, (1, None), (5, 6))
    (2.1.3)当X,Y传不同形的array,那么会根据维度高的array进行同形转换,
    即维度低的array会作为元素填充到维度高的array结构中取代自己。

        res_single2 = np.where(2.5, None, arr8)
        res_single4 = np.where(0, arr5, 'x')
        res_single5 = np.where(2.5, (1, 2), [(5, 6), (7, 8)])
    (2.2)当condition传array的时候,array的元素不能是str
    (2.2.1)X,Y传单个值的时候,根据condition的元素判断进行填充,
    condition元素为True填充X,为False填充Y,
    得到一个condition同形的array并返回

        arr9 = np.array([True, None, False, True, False, False])
        res_arr1 = np.where(arr9, 1, None)
    (2.2.2)X,Y传array的时候,X,Y必须与condition同形,或者condition形状包含X,Y形状,
    根据condition的元素判断进行填充,condition元素为True填充X中位置相对应的元素,
    condition元素为False填充Y中位置相对应的元素,得到一个array并返回

        res_arr2 = np.where(arr6, arr5, arr1)
        res_arr3 = np.where(arr6, arr5, 0)
(9)numpy.linalg.norm(x, ord=None, axis=None, keepdims=False)  用于计算向量或矩阵的范数。范数是衡量向量“大小”的一种方式,也可以用来衡量矩阵的“大小”。
 x:输入的数组,可以是向量或矩阵。
 ord:可选参数,指定范数的类型。默认值为 None,表示二范数(欧几里得范数)。
 其他常见的范数还包括:
     np.inf:无穷范数(最大绝对值)。
     1:一范数(绝对值之和)。
     -1:负一范数(最小绝对值)。
     2:二范数(欧几里得范数)。
     其他正整数:p范数(Lp范数)。
 axis:可选参数,指定计算范数的轴。对于矩阵,这可以用来计算行范数或列范数。
 keepdims:布尔值,指示是否保持数组的维度。默认为 False。
        arr10 = np.array([1, 2, 3])
 计算二范数
        print(np.linalg.norm(arr10))
 计算一范数
        print(np.linalg.norm(arr10, ord=1))
 计算无穷范数
        print(np.linalg.norm(arr10, ord=np.inf))
        arr11 = np.array([[1, 2], [3, 4]])
 计算矩阵的Frobenius范数(相当于计算矩阵元素平方和的平方根)
        print(np.linalg.norm(arr11))  # 输出:5.477225575051661
 计算矩阵的列范数
        print(np.linalg.norm(arr11, ord=2, axis=0))

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode:3033. 修改矩阵 + 模拟】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

如何在Qt使用uchardet库

如何在 Qt 中使用 uchardet 库 文章目录 如何在 Qt 中使用 uchardet 库一、简介二、uchardet库的下载三、在Qt中直接调用四、编译成库文件后调用4.1 编译工具下载4.2 uchardet源码编译4.3 测试编译文件4.4 Qt中使用 五、一些小问题5.1 测试文件存在的问题5.2 uchardet库相关 六…

GaussDB关键技术原理:高性能(四)

GaussDB关键技术原理&#xff1a;高性能&#xff08;三&#xff09;从查询重写RBO、物理优化CBO、分布式优化器、布式执行框架、轻量全局事务管理GTM-lite等五方面对高性能关键技术进行了解读&#xff0c;本篇将从USTORE存储引擎、计划缓存计划技术、数据分区与分区剪枝、列式存…

Appium环境搭建,华为nova8鸿蒙系统(包括环境安装,环境配置)(一)

1.安装代码工具包 appium python client pip install appium-python-client 2.安装JDK 参考链接: ant+jmeter+jenkins从0实现持续集成(Windows)-CSDN博客 3.下载并安卓SDK 下载地址:AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载…

MySQL 8.0 架构 之 中继日志(Relay log)

文章目录 MySQL 8.0 架构 之 中继日志&#xff08;Relay log&#xff09;中继日志&#xff08;Relay log&#xff09;概述相关参数参考 【声明】文章仅供学习交流&#xff0c;观点代表个人&#xff0c;与任何公司无关。 来源|WaltSQL和数据库技术(ID:SQLplusDB) MySQL 8.0 OCP …

vue+openlayers之几何图形交互绘制基础与实践

文章目录 1.实现效果2.实现步骤3.示例页面代码3.基本几何图形绘制的关键代码 1.实现效果 绘制点、线、多边形、圆、正方形、长方形 2.实现步骤 引用openlayers开发库。加载天地图wmts瓦片地图。在页面上添加几何图形绘制的功能按钮&#xff0c;使用下拉列表&#xff08;sel…

【java高级】【算法】通过子节点 反向获取 树路径父节点 且不获取无关节点

有一个奇葩需求 要求 用户配置在某选择框的选项 例如 然后在选择时显示 用户配置的选项 依旧是返回树,但是只包含 选择的子节点。 以及涉及的父节点,树路径 不返回无关节点 【一般】我们开发中都是直接通过 树节点 返回 其下子节点 这个需求的确很奇葩。 而且还要考…

语音大模型引领自然交互新时代,景联文科技推出高质量语音大模型数据库

近期&#xff0c;OpenAI正式发布语音大模型GPT-4o&#xff0c;可以综合利用语音、文本和视觉信息进行推理&#xff0c;扮演一个个人语音交互助手。 在音频处理方面&#xff0c;它不仅能识别和转录多种口音和方言&#xff0c;改变语音的速度音调和振动&#xff0c;还能进行声音模…

CAS(compare and swap)

文章目录 CAS 的应用标准库的原子类自旋锁 CAS的ABA问题什么是 ABA 问题ABA 问题引来的 BUG相关面试题 CAS是一条CPU指令,就可以完成比较和交换这样的操作 我们假设内存中的原数据V&#xff0c;旧的预期值A&#xff0c;需要修改的新值B。 1.比较 A 与 V 是否相等。&#xff08;…

2024年7月4日 (周四) 叶子游戏新闻

老板键工具来唤去: 它可以为常用程序自定义快捷键&#xff0c;实现一键唤起、一键隐藏的 Windows 工具&#xff0c;并且支持窗口动态绑定快捷键&#xff08;无需设置自动实现&#xff09;。 卸载工具 HiBitUninstaller: Windows上的软件卸载工具 《最终幻想14》画面升级后 著名…

【高级篇】第10章 Elasticsearch 集群管理与扩展

在本章中,我们将深入探讨Elasticsearch集群的管理与扩展策略,旨在帮助读者构建一个既能应对大规模数据处理需求,又能保持高可用性和弹性的系统架构。我们将从集群架构设计入手,解析不同节点的角色与配置,然后转向节点发现与配置同步机制,最后讨论水平扩展与容错策略,确保…

【Python实战因果推断】20_线性回归的不合理效果10

目录 Neutral Controls Noise Inducing Control Feature Selection: A Bias-Variance Trade-Off Neutral Controls 现在&#xff0c;您可能已经对回归如何调整混杂变量有了一定的了解。如果您想知道干预 T 对 Y 的影响&#xff0c;同时调整混杂变量 X&#xff0c;您所要做的…

系统提示我未定义与 ‘double‘ 类型的输入参数相对应的函数 ‘finverse‘,如何解决?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

新火种AI|AI搜索挑战百度谷歌,重塑信息检索的市场?

作者&#xff1a;一号 编辑&#xff1a;美美 AI正在颠覆传统的搜索引擎市场。 随着ChatGPT等大型语言模型的火爆&#xff0c;AI搜索技术成为了公众和业界关注的焦点。这些技术不仅能够提供快速、准确的信息检索&#xff0c;还能够通过自然语言处理技术理解用户的复杂查询&am…

步进电机(STM32+28BYJ-48)

一、简介 步进电动机&#xff08;stepping motor&#xff09;把电脉冲信号变换成角位移以控制转子转动的执行机构。在自动控制装置中作为执行器。每输入一个脉冲信号&#xff0c;步进电动机前进一步&#xff0c;故又称脉冲电动机。步进电动机多用于数字式计算机的外部设备&…

vue的学习--day3

1、尝试使用json文件模拟增删改查 json server:准备一份自己的数据&#xff08;这里我用的是老师给的&#xff09;。 转到d盘&#xff0c;然后打开json文件&#xff1a; 下面模拟增删改查&#xff1a; 借助工具postman或apifox或apipost&#xff1a; 这里我下载了apifox&…

养老院生活管理系统

摘要 随着全球范围内人口老龄化趋势的日益加剧&#xff0c;养老院作为老年人生活的重要场所&#xff0c;其生活管理问题也显得愈发突出和重要。为了满足养老院在日常生活管理、老人健康监护、服务人员管理等多方面的需求&#xff0c;提高管理效率和服务质量。决定设计并实现了…

鸿蒙小案例-自定义键盘

一个自定义键盘 效果 完成简单的26键中英文输入 使用&#xff1a; Entry Component struct IndexInput {State text: string inputController: TextInputController new TextInputController()//自定义键盘关闭事件hideClick(){this.inputController.stopEditing()}//自定义…

Java SpringBoot MongoPlus 使用MyBatisPlus的方式,优雅的操作MongoDB

Java SpringBoot MongoPlus 使用MyBatisPlus的方式&#xff0c;优雅的操作MongoDB 介绍特性安装新建SpringBoot工程引入依赖配置文件 使用新建实体类创建Service测试类进行测试新增方法查询方法 官方网站获取本项目案例代码 介绍 Mongo-Plus&#xff08;简称 MP&#xff09;是一…

Windows 11 安装 Python 3.11 完整教程

Windows 11 安装 Python 3.11 完整教程 一、安装包安装 1. 下载 Python 3.11 安装包 打开浏览器,访问 Python 官方下载页面。点击“Download Python 3.11”,下载适用于 Windows 的安装包(Windows installer)。 2. 安装 Python 3.11 运行下载的安装包 python-3.11.x-amd6…