python输出个数、给定一个n*n的矩阵m_简述Numpy

2023-11-07

numpy的数组对象ndarray

np.array()生成一个ndarray数组

np.array()输出成[]形式,元素由空格分割

轴(axis):保存数据的维度

秩(rank):轴的数量

ndarray对象的属性

属性

说明

.ndim

秩,即轴的数量或维度的数量

.shape

ndarray对象的尺度,对于矩阵,n行m列

.size

ndarray对象元素的个数,相当于.shape中n*m的值

.dtype

ndarray对象的元素类型

.itemsize

ndarray对象中每个元素的大小,以字节为单位

ndarray的元素类型

数据类型

说明

bool

布尔类型,True或False

intc

与C语言中的int类型一致,一般是int32或int64

intp

用于索引的整数,与C语言中ssize_t一致,int32或int64

int8

字节长度的整数,取值:[-128, 127]

int16

16位字节长度的整数,取值:[-32768, 32767]

int32

32位字节长度的整数,取值:[-2^31, 2^31-1]

int64

64位字节长度的整数,取值:[-2^63, 2^63-1]

uint8

8位无符号整数,取值:[0,255]

uint16

16位无符号整数,取值:[0,65535]

uint32

32位无符号整数,取值:[0,2^32-1]

uint64

64位无符号整数,取值:[0,2^64-1]

float16

16位半精度浮点数:1位符号位,5位指数,10位尾数

float32

32位半精度浮点数:1位符号位,8位指数,23位尾数

float64

64位半精度浮点数:1位符号位,11位指数,52位尾数

complex64

复数类型,实部和虚部都是32位浮点数

complex128

复数类型,实部和虚部都是64位浮点数

ndarray数组的创建方法

1.从python中的列表、元组等类型创建ndarray数组

x = np.array(list/tuple)

x = np.array(list/tuple, dtype = np.float32)

当np.array()不指定dtype时,numpy将根据数据情况关联一个dtype类型

2.使用numpy中函数创建ndarray数组,如:arange, ones, zeros等

函数

说明

np.arange(n)

类似range()函数,返回ndarray类型,元素从0到n-1

np.ones(shape)

根据shape生成一个全1数组,shape是元组类型

np.zeros(shape)

根据shape类型生成一个全0数组,shape是元组类型

np.full(shape,val)

根据shape生成一个数组,每个元素值都是val

np.eye(n)

创建一个正方的n*n单位矩阵,对角线为1,其余为0

np.ones_like(a)

根据数组a的形状生成一个全1数组

np.zeros_like(a)

根据数组a的形状生成一个全0数组

np.full_like(a, val)

根据数组a的形状生成一个数组,每个元素都是val

np.linspace()

根据起止数据等间距地填充数据,形成数组

np.concatenate()

将两个或多个数组合并成一个新的数组

ndarray数组的维度变换

方法

说明

.reshape(shape)

不改变数组元素,返回一个shape形状的数组,原数组不变

.resize(shape)

与.reshape()功能一致,但修改原数组

.swapaxes(ax1,ax2)

将数组n个维度中的两个维度进行调换

.flatten()

对数组进行降维,返回折叠后的一维数组,原数组不变

ndarray数组的类型变换

new_a = a.astype(new_type)

astype()方法一定会创建新的数组(原始数据的一个拷贝),即使两个类型一致

ndarray数组向列表的转换

ls = a.tolist()

Numpy一元函数

对ndarray中的数据执行元素级运算的函数

函数

说明

np.abs(x) np.fabs(x)

计算数组各元素的绝对值

np.sqrt(x)

计算数组各元素的平方根

np.square(x)

计算数组各元素的平方

np.log(x) np.log10(x) np.log2(x)

计算数组各元素的自然对数、10底对数和2底对数

np.ceil(x) np.floor(x)

计算数组各元素的ceiling值或floor值

np.rint(x)

计算数组各元素的四舍五入值

np.modf(x)

将数组各元素的小数和整数部分以两个独立数组的形式返回

np.cos(x) np.cosh(x) np.sin(x) np.sinh(x) np.tan(x) np.tanh(x)

计算各元素的普通型和双曲型三角函数

np.exp(x)

计算数组各元素的指数值

np.sign(x)

计算数组各元素的符号值,1(+),0,-1(-)

numpy二元函数

函数

说明

+ -* / **

两个数组各元素进行对应运算

np.maximum(x,y) np.fmax()

元素级的最大值计算

np.minimum(x,y) np.fmin()

元素级的最小值计算

np.mod(x,y)

元素级的模运算

np.copysign(x,y)

将数组y中各元素值的符号赋值给数组x对应元素

> < >= <= == !=

算术比较,产生布尔型数组

数据的CSV文件存取

1.np.savetxt(frame, array, fmt='%.18e', delimiter=None)

frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件

array:存入文件的数组

fmt:写入文件的格式, 例如:%d %.2f %.18e

delimiter:分割字符串,默认是任何空格

2.np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)

frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件

dtype:数据类型,可选

delimiter:分割字符串,默认是任何空格

unpack:如果是True,读入属性将分别写入不同变量

3.CSV文件的局限性

CSV只能有效存储一维和二维数组

np.savetxt() np.loadtxt()只能有效存取一维和二维数组

多维数据的存取

1. a.tofile(frame, sep='', format='%s')

frame:文件、字符串

sep:数据分割字符串,如果是空串,写入文件为二进制

format:写入数据的格式

2. np.fromfile(frame, dtype=float, count=-1, sep='')

frame:文件、字符串

dtype:读取的数据类型

count:读取元素个数、-1表示读取整个文件

sep:数据分割字符串,如果是空串,写入文件为二进制

注意:该方法需要读取时知道存入文件时数组的维度和元素类型,a.tofile()和np.fromfile()需要配合使用

numpy的便捷文件存取

1. np.save(fname, array)或np.savez(fname, array)

fname:文件名,以.npy为拓展名,压缩拓展名为.npz

array:数组变量

2.np.load(fname)

fname:文件名,以.npy为拓展名,压缩拓展名为.npz

Numpy的随机数函数(np.random)

函数

说明

rand(d0,d1,...,dn)

根据d0-dn创建随机数数组,浮点数,[0,1),均匀分布

randn(d0,d1,...,dn)

根据d0-dn创建随机数数组,标准正态分布

randint(low, high, shape)

根据shape创建随机整数或整数数组,范围是[low,high)

seed(s)

随机数种子,s是给定的种子值

shuffle(a)

根据数组a的第一轴进行随机排列,改变数组x

permutation(a)

根据数组a的第一轴产生一个新的乱序数组,不改变数组x

choice(a,size,replace,p)

从一维数组a中以概率p抽取元素,形成size形状新数组,replace表示是否可以重用元素,默认为False

uniform(low,high, size)

产生具有均匀分布的数组,low起始值,high结束值,size形状

normal(loc,scale,size)

产生具有正态分布的数组,loc均值,scale标准差,size形状

poisson(lam, size)

产生具有泊松分布的数组,lam随机事件发生率,size形状

Numpy的统计函数

函数

说明

sum(a, axis=None)

根据给定轴axis计算数组a相关元素之和,axis整数或元组

mean(a, axis=None)

根据给定轴axis计算数组a相关元素的期望,axis整数或元组

average(a, axis=None, weights=None)

根据给定轴axis计算数组a相关元素的加权平均值

std(a, axis=None)

根据给定轴axis计算数组a相关元素的标准差

var(a, axis=None)

根据给定轴axis计算数组a相关元素的方差

min(a) max(a)

计算数组a中元素的最小值、最大值

argmin(a) argmax(a)

计算数组a中元素最小值、最大值的降一维后的下标

unravel_index(index, shape)

根据shape将一维下标index转换成多维下标

ptp(a)

计算数组a中元素最大值与最小值的差

median(a)

计算数组a中元素的中位数(中值)

Numpy的梯度函数

函数

说明

np.gradient(f)

计算数组f中元素的梯度,当f为多维时,返回每个维度的梯度

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python输出个数、给定一个n*n的矩阵m_简述Numpy 的相关文章

  • vue 循环input获取值

    html代码 循环input v model绑定
  • c语言中的语义错误和语法错误,C语言程序中对错误的调试

    程序调试 现在我们已经可以编写一个简单的 C语言程序了 但是你可能会犯一些简单的错误 程序的错误通常叫做 bug 而发现和修正这些错误的过程叫做调试 下面有一个带有一些错误的程序 看看你能找出多少 语法错误 上面的程序中包含了几个语法错误
  • linux grep 使用

    1 grep 单独使用 搜素指定目录中包含指定字符的文件 例如 grep r words 搜素当前目录中包含 words 字符的文件 grep r words wc 搜素当前目录中包含 words 字符的文件 只显示 包含该字符的数量 2
  • gre 填空78-89

    section 78 median 1 Kinetic dynamic energizing Immutable not capable of or susceptible to change 2 It is often argued th
  • idea build 报错,maven install 正常运行

    pom中引的包 代码写的时候也有提示 写完也不报错 build 或者 run 或者 debug 启动就报错 提示程序包xxx无法找到 原来是idea 自身的问题 首先执行maven 命令 mvn idea idea 再点击idea的菜单fi
  • 被包围的棋子 Surrounded Regions

    问题 Given a 2D board containing X and O capture all regions surrounded by X A region is captured by flipping all O s into
  • 浅谈MVC(jsp+servlet+JavaBean简单实例)

    MVC Model View Controller 旨在分离模型 控制 视图 是一种分层思想的体现 项目实例 购物车商品管理 总体设计 1实现DBHelper类 2创建实体类 3创建业务逻辑类 DAO 4创建控制层 5创建页面层 1数据库连
  • Android面试回忆录:Service有几种启动方式?,android开发工程师

    如果需要做耗时的操作 你会怎么做 问题便这样展开了 一个人是否真正懂得原理会灵活运用 一下子便能看出来 当面试者回答到线程和Handler方式时 我会再问一下对方 是否知道IntentService 在什么场景下使用IntentServic
  • 文件操作之文件下载、文件读取

    本文章仅做学习交流 如有违法行为 上传者自行负责 原理 原理案例 检测 怎么寻找文件下载漏洞 利用方面 文件目录的获取分两种 文件类型 常见文件 敏感文件 实际案例演示 Javaweb文件下载代码 当贝市场 通过功能点找到漏洞 RoarCT
  • win10下使用mmdet训练自己的数据模型

    win10下使用mmdet训练自己的数据模型 1 环境配置 2 制作自己的coco数据集 3 进行训练 4 计算测试图像的交并比 参考文献 1 环境配置 1 查看自己cuda版本 2 查看自己python版本 3 安装pytorch 官方地
  • 项目实训(树莓派)(七)树莓派4B下的ubuntu系统下命令行的使用-磁盘管理部分

    目录 前言 实验目的 实验内容 实验环境 实验步骤 1 df命令 2 fdisk命令 磁盘分区 3 hdparm命令 显示与设定硬盘参数 4 lsblk命令 查看系统的磁盘 5 vgextend命令 扩展卷组 前言 通过前面的实验 我们已经
  • 【MySQL笔记】正确的理解MySQL的MVCC及实现原理

    MVCC多版本并发控制 如果觉得对你有帮助 能否点个赞或关个注 以示鼓励笔者呢 博客目录 先点这里 首先声明 MySQL 的测试环境是 5 7 前提概要 什么是 MVCC 什么是当前读和快照读 当前读 快照读和 MVCC 的关系 MVCC
  • 数字水印技术

    数字水印技术在信息安全中属于数字版权保护方面的技术 数字水印通过嵌入或附加数字信息到数字媒体中 可以追踪和证明数字媒体的来源 版权 真伪等 数字水印可以被用于防止盗版 保护知识产权 证明数字证据的真实性等应用场景 从而保障信息安全和维护合法
  • jQuery学习

    1 jQuery概述 1 1 JavaScript 库 JavaScript 库 即library 是一个封装好的特定的集合 方法和函数 从封装一大堆函数的角度理解库 就是在这个库中 封装了很多预先定义好的函数在里面 比如动画animate
  • BAJT 中高级 Java 面试题答案

    1 请问你做过哪些JVM优化 使用什么方法达到什么效果 vm调优主要也就是内存空间的分配 最终策略 提高系统性能 主要策略有 1 增加eden空间 让更多的对象留在年轻代 2 大对象直接放到老年代 以免扰乱年轻代高频率的gc XX Pete
  • 怎么查找电脑中的流氓软件_1个神器彻底删除流氓软件,瞬间清出十几个G,你的电脑有救了!...

    在使用电脑中 我们总会遇到一些流氓软件 不仅严重拖慢了电脑的运行速度 还不定时地弹出一个又一个的 定时炸弹 毋庸置疑 这些定时炸弹就是各种烦人的广告和弹窗了 尽管我们通过常规的方式把它卸载 但它还会卷土重来 那么对于那些卸载了仍会有文件残留
  • SpringCloud:SpringCloud生态的组成,组件的介绍(一)

    springCloud官方文档 https www springcloud cc 中文网 https spring io projects spring cloud 官方网 SpringCloud是什么 Spring Cloud是一个基于S
  • 一文读懂:区块链中的Merkle树

    我们知道 区块链中每个区块包括区块头和区块体两部分 个人技术公众号 解决方案工程师 欢迎同领域的朋友关注 相互交流 像在CSDN一样 分享技术 分享代码 分享方案文档 分享白皮书 区块体中包含了由区块链系统产生的一系列交易数据 并以Merk
  • SLAM入门

    SLAM定义 SLAM Simultaneous localization and mapping 同时定位 我在哪里 与建图 我周围有什么 当某种移动设备 汽车 扫地机 手机 无人机 机器人 从一个未知环境的未知地点出发 在运动过程中 通

随机推荐

  • P27 多表查询的分类:非等值连接、自连接、内、外连接

    3 多表查询的分类 7 多表查询的分类 角度1 等值连接 vs 非等值连接 角度2 自连接 vs 非自连接 角度3 内连接 vs 外连接 等值连接 vs 非等值连接 SELECT FROM job grades 非等值连接 薪资是在一个范围
  • airpods固件更新方法_AirPods2/AirPods Pro新固件怎么升级 固件更新方法

    17日上午 苹果公司发布了针对 AirPods 2 和 AirPods Pro 两款无线耳机的的固件更新 不过目前官方并未说明此次更新的具体改进 AirPods Pro 是苹果 10 月底推出的新品 支持主动降噪功能 在今天之前 它的固件版
  • MySQL数据库基本概念介绍

    MySQL数据库 一 数据库的简介 1 数据 Data 2 表 3 数据库 二 数据库的概念 1 数据库管理系统 DBMS 2 数据库系统 三 数据库的发展史 1 第一代数据库 2 第二代数据库 3 第三代数据库 四 当前主流数据库介绍 1
  • 搜索引擎solr系列---与java的springboot项目连接配置

    java与solr连接 调用查询的方式 我知道的有两种 solrj方式 这种方式写法较麻烦 倒不是因为难 就是简单的逻辑 有时候为了一个业务写一堆代码 所以solrj的这种方式还是比较灵活的 能实现你需要的变态业务需求 我发现它的一个小缺点
  • SpringBoot 3.x整合Fluent Mybatis极简流程

    此为基础配置 不包括其他高级配置 需要其他高级配置请查阅官方文档 fluent mybatis特性总览 Wiki Gitee com https gitee com fluent mybatis fluent mybatis wikis f
  • 软件测试学习路线

    下图是某培训机构的课程概要 同样的 我们学习的路线基本如此 下面主要总结一下 注意 因为自身原因 所以我的方案是自己的自学方案 仅作参考 1 测试基础知识 一些测试必备文档以及概念要掌握 这是最基本的 1 gt 测试分类 按测试技术划分为
  • 实验吧——加了料的报错注入

    coding utf8 import requests import re def denglu username password 设置代理 用于调试过程中抓包分析 proxies http http localhost 9008 htt
  • 了解文件的随机读写,文件类别、文件缓冲区,文件操作知识点补充(接上文)

    文件的操作 老规矩笔记自取 文件操作进阶笔记 欢迎喜欢学习C C 的朋友互关一起努力 文章目录 文件的操作 一 文件的随机读写 1 fseek 定位文件指针函数 2 ftell 当前偏移量函数 3 rewind 返回起始位置函数 二 文本文
  • java操作seaweedfs

    前置条件是seaweedfs服务已成功启动 具体部署可参考我上篇文章SeaweedFS部署及使用指南 首先导入pom依赖
  • Python Scrapy网络爬虫框架从入门到实战

    Python Scrapy是一个强大的网络爬虫框架 它提供了丰富的功能和灵活的扩展性 使得爬取网页数据变得简单高效 本文将介绍Scrapy框架的基本概念 用法和实际案例 帮助你快速上手和应用Scrapy进行数据抓取 Scrapy是一个基于P
  • SpringMVC源码总结 ViewResolver介绍

    首先我们先看看ModelAndView中重要的View接口 View接口 Java代码 String getContentType Render the view given the specified model p The first
  • QT翻金币小游戏实现(三)

    4 创建翻金币场景 4 1创建翻金币界面 设计好主场景以及选择关卡界面以后 就来到了最重要的一环 翻金币 首先还是创建一个cpp文件命名为PlayScene 第一步在选择关卡中声明PlayScene pScene NULL 方便后面使用 点
  • 模拟点击事件

    一 通过代码模拟用户对按钮的点击 模拟按钮的点击 方法一 使用btn click模拟用户的点击 btn click 方法二 两秒之后自动松开按钮 btn animateClick 2000 区别是方法一没有什么动画 界面展示 方法二有时间效
  • C#笔记9——基于TableLayoutPanel的多分屏、全屏程序

    C 笔记9 基于TableLayoutPanel的多分屏 全屏程序 最近由于工作需要 需要设置一个多分屏窗口以便于多分屏播放视频 思考了一下 大致思路如下 用TableLayoutPanel来划分多个区域 在每个区域中都放入一个Pictur
  • windows下composer切换php不同版本使用

    D object cms gt D sf phpStudy 64 phpstudy pro Extensions php php7 3 4nts php exe D sf phpStudy 64 phpstudy pro Extension
  • A²B汽车音频总线介绍

    A B使远程I S TDM成为可能 I S是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准 该总线专责于设备之间的数据传输 广泛应用于各种多媒体系统 I C是两线式串行总线 用于连接微控制器及其外围设备 简单来说就是I C传
  • CANopen协议 学习笔记

    大纲 前沿 以问题为导向学习是最高效的 本文主要讲述在学习Canopen协议中的一些疑惑点 分享一些学习心得 不讲协议本身的内容 1 主机和从机的概念 2 PDO和SDO的区别是什么 3 OD存在的意义是什么 4 心跳检测的意义 0x00
  • LeetCode 刷题 28

    这一题 第一反应是 用map 或者栈 但是仔细想想后觉得太麻烦了 于是选用了双指针的方法 class Solution public int strStr string haystack string needle int hay 0 in
  • Jmeter测试linux服务器性能,报错:SampleSaveConfiguration.setFormatter(Ljava/text/DateFormat;)V

    1 出现问题 在执行命令 jmeter n t test jmx l log jtl 时 报标题错误 2 原因 Jmeter的版本太高了 不支持其中一个方法了 jmeter版本太高 setFormatter方法在3 1版本后不支持 但是插件
  • python输出个数、给定一个n*n的矩阵m_简述Numpy

    numpy的数组对象ndarray np array 生成一个ndarray数组 np array 输出成 形式 元素由空格分割 轴 axis 保存数据的维度 秩 rank 轴的数量 ndarray对象的属性 属性 说明 ndim 秩 即轴