Python_NumPy——入门学习(概述,数据类型,创建数组)

作者:初次知晓
邮箱:lr_1052107892@outlook.com


资料参考

[菜鸟教程](https://www.runoob.com/)

NumPy概述

NumPy(Numerical Python)是python的一个扩展程序库,支持大量的维度数据与矩阵运算,针对数据运算提供大量的数学函数库,包括:数学,逻辑,形状操作,排序,选择,输入输出,离散傅里叶变换等…

使用numpy的优势:
1.处理同样数值计算任务,比纯python更便捷
2.numpy中的数组的存储效率和输入输出性能远远优于python中等价的基本数据结构
3.numpy在底层算法比纯python代码高效

Ndarray

NDarray是Ndarray中数组的数据类型
NumPy 最重要的一个特点是其 N 维数组对象 NDarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
NDarray 对象是用于存放同类型元素的多维数组。
NDarray 中的每个元素在内存中都有相同存储大小的区域。
NDarray 内部由以下内容组成:
• 一个指向数据(内存或内存映射文件中的一块数据)的指针。
• 数据类型或 dtype,描述在数组中的固定大小值的格子。
• 一个表示数组形状(shape)的元组,表示各维度大小的元组。
• 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数

Ndarray的属性

例子:a = np.ones(shape=(3,4,5),dtype=int) # 创建一个三维,每个维度四行五列且元素全为1的数组
[[[1 1 1 1 1][1 1 1 1 1][1 1 1 1 1][1 1 1 1 1]][[1 1 1 1 1]
[1 1 1 1 1][1 1 1 1 1]
[1 1 1 1 1]][[1 1 1 1 1][1 1 1 1 1][1 1 1 1 1][1 1 1 1 1]]]四个重要属性:
1.ndim:维度print(a.ndim)3
2.shape:形状(各维度的长度)print(a.shape)(3, 4, 5)
3.size:总长度print(a.size)60
4.dtype:元素类型print(a.dtype)int32如何判断维度?数组.shape会返回该数组的形状返回几个数字,就是几维度对于一维数组,会返回:(列数)对于二维数组,会返回:(行数,列数)对于三维数组,会返回:(块数,行数,列数)对于N  维数组,会返回:(…..,行数,列数)最后两个的数值固定为行数,列数除这两个数之外的其他所有数相乘,即为:块数

NumPy数组中数据的数据类型

数据类型
Numpy要求数组中所有数据优先级相同
如果不相同将会按照优先级:str>float>int
强制统一数组内所有数据的数据结构

示例:
#优先级:str>float>intimport numpy as np
#浮点型和整形
a = np.array([3.14,2])
print(a)[ 3.14  2.  ]  #2.  表示2.0#浮点型和字符型
b = np.array([3.14,"love"])
print(b)['3.14' 'love']

NumPy数组

数组是一种类似于python中列表的一个数据容器,在numpy中一切皆数据数组是由[]包含起来的,[]嵌套级数表示数组的维度一维数组     […]二维数组     [[…]…[…]…]三维数组     [[[…]…[…]…]…[[…]…[…]…]…]以此类推……
数组中有一个形状的概念,查看数组形状:语法:数组名.shape[[1 1 1 1][1 1 1 1][1 1 1 1]]print(c.shape)输出:(3, 4)对于二维数组shape会返回该数组的行和列,即:(行,列)[[[1 1 1 1 1][1 1 1 1 1][1 1 1 1 1][1 1 1 1 1]][[1 1 1 1 1][1 1 1 1 1][1 1 1 1 1][1 1 1 1 1]][[1 1 1 1 1][1 1 1 1 1][1 1 1 1 1][1 1 1 1 1]]]print(c.shape)输出:(3, 4, 5)对于三维数组shape会返回该数组的块数,行,列,即:(块数,行,列)

创建数组

一.使用array创建数组
一.使用array创建数组
语法:变量 = numpy.array(数组数据)如: a = np.array([1,2,3])最常用
二.使用ones创建数组
二.使用ones创建数组
创建一个所有元素都为1的多维数组语法:numpy.ones(shape,dtype=None,order='C')Shape:形状Dtype=None:元素类型Order:{'C','F'}:可选项c = np.ones(shape = (3,4,5),dtype = np.int16)print(c)   #创建一个三个四行五列的数组[[[1 1 1 1 1]  [1 1 1 1 1]  [1 1 1 1 1]  [1 1 1 1 1]][[1 1 1 1 1][1 1 1 1 1][1 1 1 1 1][1 1 1 1 1]][[1 1 1 1 1][1 1 1 1 1][1 1 1 1 1][1 1 1 1 1]]]
三.使用zeros创建数组
三.使用zeros创建数组
创建一个所有元素都为0的多维数组语法:numpy.ones(shape,dtype=None,order='C')Shape:形状Dtype=None:元素类型Order:{'C','F'}:可选项d = np.zeros(shape = (5,5),dtype = np.int16)print(d) # 创建一个五行五列的数组[[0 0 0 0 0][0 0 0 0 0][0 0 0 0 0][0 0 0 0 0][0 0 0 0 0]]
四.使用full创建数组
四.使用full创建数组
创建一个所有元素都为指定元素的多维数组语法:numpy.full(shape,fill_value = None,dtype = None,order='C')Shape:形状Fill_value = None :填充的值Dtype=None:元素类型Order:{'C','F'}:可选项e = np.full(shape = (3,4),fill_value = 2)print(e)[[2 2 2 2][2 2 2 2][2 2 2 2]]
五.使用eye创建数组
五.使用eye创建数组
创建一个对角线为1其他位置为0的二维数组语法:numpy.eye(N,M=None,k=0,dtpye=float)N:行数M:列数,None(不写)表示和行数一样k=0Dtpye=None:元素类型f = np.eye(6,6,dtype=np.int16)print(f)[[1. 0. 0. 0. 0. 0.][0. 1. 0. 0. 0. 0.][0. 0. 1. 0. 0. 0.][0. 0. 0. 1. 0. 0.][0. 0. 0. 0. 1. 0.][0. 0. 0. 0. 0. 1.]]
六.使用linspace创建数组
六.使用linspace创建数组
创建一个等差数列语法:numpy.linspace(start,stop,num=50,endpoint=True,retstep=False,dtpye=None)Start:开始值Stop:结束值Num=50:等差数列中默认有50个数Endpoint=True:是否包含结束值Retsep=False:是否返回等差值(公差)Dtype=None:元素类型g = np.linspace(1,10,num=10,dtype=np.int16)print(g)[ 1  2  3  4  5  6  7  8  9 10]
七.使用arange创建数组
七.使用arange创建数组和range的语法一致语法:numpy.arange(start,stop,step,dtype=None)Start:开始值,可选stop:结束值step:步长,可选Dtype=None:元素类型h = np.arange(10)print(h)[0 1 2 3 4 5 6 7 8 9]
八.使用random.randint创建数组
八.使用random.randint创建数组创建一个随机整数的多维数组语法:random.randint(low,high=None,size=None,dtype='I')low:最小值High=None时,生成的数值在[0,low]之间Size=None:数组形状Dtype=None:元素类型bi = np.random.randint(10) #[0,10)如果只填一个数字,会形成一个左闭右开的条件,并且只会输出一个数值i = np.random.randint(1,10) #[1,10)如果填两个数,会形成一个指定数值的区间,并随机输出一个数值i = np.random.randint(1,10,size = (3,4))[[5 1 5 5][8 1 8 1][8 8 5 8]]指定形状之后,会根据形状取出一定数量的数值(在指定区间内随机取)
九.使用random.randn创建数组
九.使用random.randn创建数组创建一个服从标准正态分布的多维数组以0为均数,以1为标准差的正态分布,记为 N(0,1) 标准正态分布语法: numpy.random.randn(d0,d1,…,dn)d0,d1,…,dn为该数组的形状,如果要生成一个3行四列的数组:j = np.random.randn(3,4)print(j)[[-0.2933226  -0.76987489  0.40534212 -0.21640745]    [-0.17778317 -0.52134658  1.88350071 -0.82146952]    [-1.22999297 -1.51803949  1.61657564  0.37700461]]  
十.使用random.normal创建数组
十.使用random.normal创建数组创建一个服从正态分布的多维数组语法:numpy.random.normal(loc=0.0,scale=1.0,size=None)loc=0.0:均值,对应着正态分布的中心scale:标准差,对应分布的宽度,scale越大,正态分布的缺陷越矮胖,scale越小,曲线越高瘦size=None:数组形状k=np.random.normal(loc=0.0,scale=1.0,size=(3,4))print(k)[[-0.23246216  0.26749955 -0.29392166  0.3362761 ]    [-1.91780129 -0.6669381   0.20897606  1.50653718]    [ 0.28661731 -1.02116974  0.5327165   0.3193466 ]] 
十一.使用random.random创建数组
十一.使用random.random创建数组创建一个元素为0-1(左闭右开)的随机数的多维数组语法:numpu.random.random(size=None)Size = None:数组形状l=np.random.random(size=(3,4))print(l)[[0.09826337 0.78667023 0.58771261 0.10221402]        [0.38993212 0.24497684 0.04957887 0.51181572]        [0.17323217 0.9333488  0.25844232 0.79559424]] 
十二.使用random.rand创建数组
十二.使用random.rand创建数组创建一个元素为0-1的随机数多维数组与random.random一致,但语法不同语法:numpy.random.rand(形状)m=np.random.rand(3,4)print(m)[[0.99871438 0.45171269 0.30256666 0.81072106]        [0.34212124 0.59970651 0.77702736 0.03364478]        [0.35500722 0.71010727 0.02300558 0.92293601]]   

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

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

相关文章

如何降低微服务复杂度丨云栖大会微服务主题分享实录

作者:谢吉宝 本文整理自阿里云资深技术专家、中间件负责人谢吉宝在2023云栖大会《极简微服务模式,降低微服务复杂度的最佳实践》的分享 2023 云栖大会现场 当面临复杂的挑战时,"分而治之"的方法往往能取得显著的效果。微服务架构…

C++——类型转换与特殊类设计

我们在C语言中经常会使用到强制类型转换,例如指针和整形之间的转换是最为常见的,但是 在C中,C设计师认为这种强制类型转换是不安全的,所以在C标准中加入了四种强制 类型转换风格,这就是我将要介绍的强制类型转换。 在某…

VS2022联合Qt5开发学习11(QT5.12.3联合VTK在VS2022上开发医学图像项目5——qvtkWidget上显示STL三维图像并取点)

这篇博文是接着这个系列前面的博文,来讲如何实现医学图像三视图同步视图。我想到的一个思路是用Scrollbar来控制切面的改变,还有一个想法是在三维图像上取点,然后以这个点为切面中心更新三维视图。这篇博文主要介绍的就是第二个想法的三维图像…

C++ qt标题栏组件绘制

本博文源于笔者在学习C qt制作的标题栏组件,主要包含了,最小化,最大化,关闭。读者在看到这篇博文的时候,可以直接查看如何使用的,会使用了,然后进行复制粘贴源码部分即可。 问题来源 想要制作…

支持向量机(Support Vector Machines)(需要优化)

1.优化目标 一个更加强大的算法广泛的应用于工业界和学术界,它被称为支持向量机(Support Vector Machine)。与逻辑回归和神经网络相比,支持向量机,或者简称 SVM,在学习复杂的非线性方程时提供了一种更为清晰,更加强大…

css 中 flex 布局最后一行实现左对齐

问题 flex 布局最后一行没有进行左对齐显示&#xff1a; <div classparent><div classchild></div><div classchild></div><div classchild></div><div classchild></div><div classchild></div><div…

2022年至2023年广东省职业院校技能大赛高职组“信息安全管理与评估”赛项样题

2022 年至 2023 年广东省职业院校技能大赛高职组“信息安全管理与评估”赛项样题 一、 第一阶段竞赛项目试题 本文件为信息安全管理与评估项目竞赛第一阶段试题&#xff0c;第一阶段内容包 括&#xff1a;网络平台搭建、网络安全设备配置与防护。 本阶段比赛时间为 180 分钟…

华为数通方向HCIP-DataCom H12-831题库(判断题:121-140)

第121题 BGP/MPLS IP VPN内层采用MP-BGP分配的标签区分不同的VPN实例,外层可采用多种隧道类型,例如GRE隧道。 正确 错误 答案: 错误 解析: VPN业务的转发需要隧道来承载,隧道类型包括GRE隧道、LSP隧道、TE隧道(即CR-LSP)。 如果网络边缘的PE设备具备MPLS功能,但骨干网核…

林浩然与Hadoop的奇幻数据之旅

林浩然与Hadoop的奇幻数据之旅 Lin Haoran and the Enchanting Data Journey with Hadoop 在一个名为“比特村”的地方&#xff0c;住着一位名叫林浩然的程序员大侠。他并非江湖上常见的武艺高强之人&#xff0c;而是凭借一把键盘、一支鼠标&#xff0c;纵横在大数据的海洋里。…

UI跟随物体的关键是什么?重要吗?

引言 UI的跟随效果 在游戏开发中&#xff0c;UI的跟随效果是提高用户体验和交互性的重要组成部分。 本文将深入介绍如何创建一个高效且可定制的UI跟随目标组件&#xff0c;并分享一些最佳实践。 本文源工程在文末获取&#xff0c;小伙伴们自行前往。 UI跟随物体的关键 UI…

MQ回顾之kafka速通

不定期更新 官网概念自查 官网&#xff1a;Apache Kafka kafka结构 和kafka相关的关键名词有&#xff1a;Producer、Broker、Topic、Partition、Replication、Message、Consumer、Consumer Group、Zookeeper。 各名词解释已经泛滥&#xff0c;如果你想看点不一样的&#xf…

A 股承担着一个什么功能?

​A 股&#xff1a;中国资本市场的核心角色 A 股&#xff0c;即人民币普通股票&#xff0c;在中国资本市场中扮演着至关重要的角色。它不仅是投资者买卖交易的场所&#xff0c;更是中国经济发展的重要引擎。 首先&#xff0c;A 股为中国的企业提供了融资平台。中国有着庞大的…

从Elasticsearch来看分布式系统架构设计

从Elasticsearch来看分布式系统架构设计 - 知乎 分布式系统类型多&#xff0c;涉及面非常广&#xff0c;不同类型的系统有不同的特点&#xff0c;批量计算和实时计算就差别非常大。这篇文章中&#xff0c;重点会讨论下分布式数据系统的设计&#xff0c;比如分布式存储系统&…

Zookeeper3.5.7源码分析

文章目录 一、Zookeeper算法一致性1、Paxos 算法1.1 概述1.2 算法流程1.3 算法缺陷 2、ZAB 协议2.1 概述2.2 Zab 协议内容 3、CAP理论 二、源码详解1、辅助源码1.1 持久化源码(了解)1.2 序列化源码 2、ZK 服务端初始化源码解析2.1 启用脚本分析2.2 ZK 服务端启动入口2.3 解析参…

鸿蒙入门学习的一些总结

前言 刚开始接触鸿蒙是从2023年开始的&#xff0c;当时公司在调研鸿蒙开发板能否在实际项目中使用。我们当时使用的是OpenHarmony的&#xff0c;基于DAYU/rk3568开发板&#xff0c;最开始系统是3.2的&#xff0c;API最高是API9&#xff0c;DevecoStudio 版本3.1的。 鸿…

excel统计分析——Duncan法多重比较

参考资料&#xff1a;生物统计学 Duncan法又称新复极差检验法&#xff0c;是对S-N-K法的改进&#xff0c;根据秩次距m对临界值的显著水平α进行调整&#xff0c;是最常用的多重比较方法。最小显著极差表示如下&#xff1a; 其中&#xff0c;m为秩次距&#xff0c;df为方差分析中…

【软件测试】学习笔记-制定一份有效的性能测试方案

什么是性能测试方案&#xff1f; 性能测试方案&#xff0c;通俗一点说就是指导你进行性能测试的文档&#xff0c;包含测试目的、测试方法、测试场景、环境配置、测试排期、测试资源、风险分析等内容。一份详细的性能测试方案可以帮助项目成员明确测试计划和手段&#xff0c;更…

第二集《闻法仪轨》

请大家打开讲义第三面&#xff0c;甲二、于法、法师发起承事。 我们身为一个大乘的佛弟子&#xff0c;我们这一念明了的心&#xff0c;在一生当中&#xff0c;会遇到很多很多的佛法&#xff0c;也会遇到很多很多的法师&#xff0c;但不是所有的法师跟佛法对我们都是帮助的&…

Prometheus插件安装kafka_exporter

下载地址 https://github.com/danielqsj/kafka_exporter/releases 解压 tar -zxvf kafka_exporter-1.7.0.linux-amd64.tar.gzmv kafka_exporter-1.7.0.linux-amd64 kafka_exporter服务配置 cd /usr/lib/systemd/systemvi kafka_exporter.service内容如下 [Unit] Descript…

概念性——数据库简介

前些天发现了一个人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;最重要的屌图甚多&#xff0c;忍不住分享一下给大家。点击跳转到网站。 概念性——数据库简介 介绍 数据对于当今许多应用程序和网站的运行至关重要。对热门视频的评论、多人游戏中分…