NumPy基础之array创建ndarray多维数组

1 NumPy基础之array创建ndarray多维数组

NumPy(Numerical Python)是一个python库,提供多维数组对象及其派生对象,以及用于数组快速操作的各种API。它运行速度快,用于数值计算,是python中科学计算的基础包。

1.1 安装numpy

D:\python39\Scripts>pip install numpy

1.2 ndarray:一种多维数组对象

ndarray(N-dimensional array)是NumPy的核心对象,属于一个Python类。

ndarray是NumPy的N维数组对象,是一个快速灵活的大数据集容器。

ndarray是一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。

一维列表中每个元素是单个数字或元素。

二维列表中每个元素是一个一维的列表。

1.3 array()创建ndarray

通过array()创建ndarray数组对象。

1.3.1 用法

import numpy as np
np.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0,like=None)

1.3.2 描述

导入numpy包,调用array()方法按照指定入参将object转换为ndarray多维数组。

import numpy as np:取别名,是因为numpy内的一些名字与python的内置函数重名(比如,min和max)。

1.3.3 入参

NO参数必选描述
1objectarray_like(类数组),表示要新建数组的对象。包括四种类型:数组、公开数组接口的任何对象、一个带有__array__()方法并且返回数组的对象、任何序列。
2dtypedata-type(数据类型),表示数组元素的类型。如果没有给出,numpy将类型确定为保持序列中的对象所需的最小类型。此参数只能用于“upcast”数组。对于向下转换,请使用.astype(t)方法。
3*NA表示keyword-only参数,即后面的入参必须按关键字参数进行传送。,不能收集多余的位置参数。参考《python的keyword-only参数及解包》
4copybool类型,表示是否复制对象。默认为True,复制对象。若为False,则,只有当__array__返回副本,obj是嵌套序列,或者需要副本来满足任何其他要求(dtype,顺序等)时,才会进行复制。
5order值为{‘K’,‘A’,‘C’,‘F’}其中的一种,指定阵列的内存布局,控制元素在内存中的存储顺序。nump生成ndarray时,输入元素的实际位置,由order参数决定元素的实际存储位置。C:按行读取,F:按列读取,K:按内存读取,A:按行或列读取。默认为K。
6subokbool类型,指定生成的ndarray数组的类型,默认为False。 True,使用object的内部数据类型; False,使用数组的数据类型。
7ndminint类型,指定生成的ndarray数组应具有的最小维度数。将根据需要对其形状进行预处理,以满足此要求。
8likearray_like类型,创建非NumPy数组的数组。创建一个与like入参兼容的数组对象。

1.3.4 出参

创建并返回一个满足入参要求的ndarray数组。

1.3.5 入参object

入参object可以为元组、列表、range对象、ndarray对象、带有__array__()方法且返回ndarray的对象、单个数字、单个字符串等。

>>> import numpy as np
# object 为元组(序列)
>>> nda1=np.array((1,2,3))
>>> nda1
array([1, 2, 3])
>>> print(nda1)
[1 2 3]
# object 为列表(序列)
>>> nda2=np.array([4,5,6])
>>> nda2
array([4, 5, 6])
>>> print(nda2)
[4 5 6]
# object 为数组
>>> nda3=np.array(nda1)
>>> nda3
array([1, 2, 3])
>>> print(nda3)
[1 2 3]
# object 带有__array__()方法并且返回ndarray数组的对象
>>> class TestArray:def __array__(self):return np.array((1,2,3))>>> nda4=np.array(TestArray())
>>> nda4
array([1, 2, 3])
>>> print(nda4)
[1 2 3]
# object 为range对象
>>> nda5=np.array(range(5))
>>> nda5
array([0, 1, 2, 3, 4])
>>> print(nda5)
[0 1 2 3 4]
# object 为1个字符串
>>> nda6=np.array('tyxt.work')
>>> nda6
array('tyxt.work', dtype='<U9')
>>> print(nda6)
tyxt.work
# object 为1个数字
>>> nda7=np.array(9555)
>>> nda7
array(9555)
>>> print(nda7)
9555

1.3.6 入参dtype

>>> import numpy as np
# dtype 指定数组元素类型, complex为复数
>>> nda1=np.array([1,2],dtype=complex)
>>> nda1
array([1.+0.j, 2.+0.j])
>>> print(nda1)
[1.+0.j 2.+0.j]
# dtype 指定数组元素类型, 
# f为float32单精度浮点数
# i4为int32有符号32位整数,小数部分被截断
>>> nda2=np.array([(1.2,3.5),(5,6.8)],dtype=[('a','<f'),('b','<i4')])
>>> nda2['a']
array([1.2, 5. ], dtype=float32)
>>> nda2['b']
array([3, 6])
>>> print(nda2)
[(1.2, 3) (5. , 6)]

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

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

相关文章

Python 自动化办公:一键批量生成 PPT

Stata and Python 数据分析 一、导读 在实际工作中&#xff0c;经常需要批量处理Office文件&#xff0c;比如需要制作一个几十页的PPT进行产品介绍时&#xff0c;一页一页地制作不仅麻烦而且格式可能不统一。那么有什么办法可以一键生成PPT呢&#xff1f;Python提供的pptx 包…

05章【面向对象(下)】

文章目录 继承继承的基本概念继承的限制继承小结子类的实例化过程方法的重写super关键字继承的应用示例final关键字 抽象类接口多态性instanceof关键字抽象类和接口的应用抽象类应用—模板方法模式接口应用—策略模式 Object类模式简单工厂模式静态代理模式适配器模式 内部类数…

策略模式【结合Spring框架实践】

Hello!~大家好啊,很高兴我们又见面了,今天我们一起学习设计模式–【策略模式】 初次对此模式不懂的,或者想偷懒的,我强烈建议大家跟着我的一起把概念和代码一起敲一遍!~为啥子??因为我就是这样学会的,哈哈哈! 1.首先我们看下此模式的整体UML图 selector:选择器又叫做上下文co…

Netty篇章(1)—— 核心原理介绍

终于进入到Netty框架的环节了&#xff0c;前面介绍了大量的Java-NIO的内容&#xff0c;核心的内容Selector、Channel、Buffer、Reactor掌握了&#xff0c;那么学起来Netty也是水到渠成的事情。如果没有掌握前面的内容那么学Netty会非常吃力&#xff0c;下面讲解Netty核心原理与…

关于 LLM,你了解多少?

LLM定义 大语言模型&#xff08;LLM&#xff09;是一种基于大量文本数据训练的深度学习模型。它的主要功能是生成自然语言文本或理解语言文本的含义。这些模型可以处理多种自然语言任务&#xff0c;如文本分类、问答、对话等&#xff0c;是通向人工智能的一条重要途径。 LLM发…

Vue3当中通过script和defineOptions两种方式指定组件的name

在vue2当中我们可以通过name属性来指定组件的名称&#xff0c;这个name会显示在vue调试工具当中&#xff0c;方便我们进行调试&#xff1b;当我们想实现一个无限递归的菜单组件时&#xff0c;也需要用到这个name属性&#xff0c;没有name属性的组件是无法递归的。 在vue3当中&…

vue中使用锚点定位

vue中不能使用a标签来使用锚点定位&#xff0c;可以使用自带的scrollIntoView方法 1、首先获取对应的需要定位的盒子ID 2、然后添加scrollIntoView方法&#xff0c;定义效果 属性及其含义&#xff1a; block: "start",// 定义垂直方向的对齐&#xff0c;默认为 &q…

C++类的入门

C类 一&#xff1a;类的简介&#xff1a; C的类是一种用户定义的数据类型&#xff0c;用于封装数据和方法。它是面向对象编程的基本概念&#xff0c;允许程序员将数据和操作数据的方法组合在一起。类可以包含成员变量和成员函数&#xff0c;用于描述对象的属性和行为。通过类…

美创荣登“2023大数据产业年度最具投资价值”榜单

近日&#xff0c;由上海市经济和信息化委员会、上海市科学技术委员会指导&#xff0c;数据猿和上海大数据联盟主办的“第六届金猿季&魔方论坛——大数据产业发展论坛”在沪隆重召开&#xff0c;并重磅揭晓《2023大数据产业年度最具投资价值》榜单。 美创科技凭借在数据安全…

k8s-kubectl常用命令

一、基础命令 1.1 get 查询集群所有资源的详细信息&#xff0c;resource包括集群节点、运行的Pod、Deployment、Service等。 1.1.1 查询Pod kubectl get po -o wid 1.1.2 查询所有NameSpace kubectl get namespace 1.1.3 查询NameSpace下Pod kubectl get po --all-namespaces…

JAVA 学习 面试(二)多线程篇

Java多线程 线程池 线程池原理 创建方式&#xff1a;newFixedThreadPool (固定数目线程的线程池)、newCachedThreadPool(可缓存线程的线程池)、newSingleThreadExecutor(单线程的线程池)、newScheduledThreadPool(定时及周期执行的线程池)、new ThreadPoolExecutor() &#x…

Elasticsearch 常用信息

简述 本文针对 Elasticsearch&#xff08;简称ES&#xff09;集群6.x版本出现故障时&#xff0c;可通过提供的命令进行排查。 1、集群健康状态 集群健康状态状态说明red不是所有的主要分片都可用。表示该集群中存在不可用的主分片。可以理解为某个或者某几个索引存在主分片丢失…

AI破局之路:一名猎头高管的AI自学之旅——公众号

AI破局之路&#xff1a;一名猎头高管的AI自学之旅——公众号。 我是周知&#xff0c;有8年猎头行业经验深耕各类顶级科技企业。 2023年&#xff0c;应该有很多同行离开这个行业吧. 毕竟我们面临着前所未有的挑战。猎头行业的每一个参与者&#xff0c;无论是初入职场的猎头新人、…

2024最新科普:文件加密软件功能大盘点

随着信息化时代的到来&#xff0c;数据安全问题越来越受到人们的关注。 文件加密作为一种重要的数据保护手段&#xff0c;被广泛应用于企业和个人用户中。 本文将对文件加密软件的功能进行大盘点&#xff0c;帮助大家了解这一安全领域的知识。 一、文件加密软件的定义 文件加…

【issue-halcon例程学习】measure_arc.hdev

例程功能 检查倒角后铸件的细长孔之间的距离。 代码如下 read_image (Zeiss1, zeiss1) get_image_size (Zeiss1, Width, Height) dev_close_window () dev_open_window (0, 0, Width / 2, Height / 2, black, WindowHandle) set_display_font (WindowHandle, 14, mono, true,…

《代码之丑》学习笔记15——新需求破坏了代码,怎么办?

15 | 新需求破坏了代码&#xff0c;怎么办&#xff1f; 文章目录 15 | 新需求破坏了代码&#xff0c;怎么办&#xff1f;一次驳回的实现 一次定时提交的实现总结时刻 前面文章讲的所有坏味道都是告诉你如何在已有的代码中发现问题。不过你要明白&#xff0c;即便我们能够极尽所…

【STM32】USB程序烧录需要重新上电 软件复位方法

文章目录 一、问题二、解决思路2.1 直接插拔USB2.2 给芯片复位 三、解决方法3.1 别人的解决方法3.2 在下载界面进行设置 一、问题 最近学习STM32的USB功能&#xff0c;主要是想要使用虚拟串口功能&#xff08;VCP&#xff09;&#xff0c;发现每次烧录之后都需要重新上电才可以…

FRRouting学习(一) 配置日志文件

以配置isis event事件日志为例 1、在配置之前&#xff0c;/var/log/frr路径下是没有文件的&#xff1a; 2、在vtysh config之下输入&#xff1a;log file /var/log/frr/isisd.log debugging 后面的debugging表示日志级别&#xff0c;可以根据自己修改 3、配置好了之后&#xf…

Operation

contents 服务器一、相关概念1.1 云服务器与实例1.2 关于域名解析延时与80端口1.3 关于备案1.4 关于SSL证书1.5 关于SSL证书的签发1.6 关于SSL证书的部署1.7 关于LNMP和LAMP1.8 关于bt面板 二、单服务器单一级域名多网站2.1 创建多个二级域名2.2 解析二级域名绑定到服务器上2.3…

基于SpringBoot Vue求职招聘系统

大家好✌&#xff01;我是Dwzun。很高兴你能来阅读我&#xff0c;我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结&#xff0c;还为大家分享优质的实战项目&#xff0c;本人在Java项目开发领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#x…