python笔记:数组的一些操作

2023-10-30

1.对数组求指数和对数

参考
指数:
math.exp() 只能对一个数求指数,不能对数组进行批量求指数
numpy.exp()既能对一个数求指数,也能对数组进行批量求指数
对数:
math.log()
numpy.log()
作用同上

2.数组的最值及其索引

参考
在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引

但在numpy中的array没有index方法,取而代之的是where,其又是list没有的

numpy中还有argmax/argmin方法来获取最值对应的索引,但是它返回顺序查找(行优先)下的索引,也就是没有分别的行和列,而且有相同最值情况下,它只返回第一个最值的索引。

首先我们可以得到array在全局和每行每列的最大值(最小值同理)

>>> a = np.arange(9).reshape((3,3))
>>> a
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
>>> print(np.max(a))		#全局最大
8
>>> print(np.max(a,axis=0))	#每列最大
[6 7 8]
>>> print(np.max(a,axis=1))	#每行最大
[2 5 8]

然后用where得到最大值的索引,返回值中,前面的array对应行数,后者对应列数

>>> print(np.where(a==np.max(a)))
(array([2], dtype=int64), array([2], dtype=int64))
>>> print(np.where(a==np.max(a,axis=0)))
(array([2, 2, 2], dtype=int64), array([0, 1, 2], dtype=int64))

import numpy as np

r = np.array([[-1,2,-3]])
# 输出:2
a = np.argmin(r)
print(a)
# 输出:1
b = np.argmax(r)
print(b)

3.按照行或者列求均值/求和/最大值/最小值/标准差/方差

参考

import numpy as np

a = np.arange(12).reshape(3, 4)
print(a.shape)
print(a)
# (3, 4)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]

# 返回得到数组中所有元素的和
print(np.sum(a))
# 66

# 参数axis=0时,返回数组各列的和,参数axis=1时,返回数组各行的和。
print(np.sum(a, axis=0)) 
print(np.sum(a, axis=1))
# [12 15 18 21]
# [ 6 22 38]

# 不使用numpy的函数也是可以的,因为ndarndarray数组中也有相同的求和方法sum()。并且也可以通过参数axis指定行或列。
print(a.sum())
# 66

print(a.sum(axis=0))
print(a.sum(axis=1))
# [12 15 18 21]
# [ 6 22 38]

# numpy.mean()的使用方法与numpy.sum()相同,也可以通过参数axis指定行或列。
print(np.mean(a))
# 5.5

print(np.mean(a, axis=0))
print(np.mean(a, axis=1))
# [ 4.  5.  6.  7.]
# [ 1.5  5.5  9.5]

# 和sum()一样,ndarray数组中也有相同的求平均值的方法mean()。并且也可以通过参数axis指定行或列。
print(a.mean())
# 5.5

print(a.mean(axis=0))
print(a.mean(axis=1))
# [ 4.  5.  6.  7.]
# [ 1.5  5.5  9.5]

#在分别使用numpy.min()和numpy.max()求数组中元素的最小值与最大值的时候,也可以通过参数axis指定行或列。并且,为了使用方便,还可以直接使用函数numpy.amin()和numpy.amax()进行计算,所得到的结果是一样的。
print(np.min(a))
print(np.min(a, axis=0))
print (np.amin(a,0))
# 0
# [0 1 2 3]
# [0 1 2 3]

print(a.max())
print(a.max(axis=1))
print(np.amax(a,1))
# 11
# [ 3  7 11]
# [ 3  7 11]

# 求标准差和方差的函数分别为numpy.std()和numpy.var()。使用方法和之前相同,也可以通过参数axis指定行或列。
print(np.std(a))
#3.452052529534663

print(np.var(a))
#11.916666666666666

4.取对角线元素

a= np.array([[1,2],[0.5,3],[3,4]])
a.diagonal()

输出:
array([1., 3.])

5.取两个数组对应的最大或最小值

a = [1,2,3]
b = [1,3,1]
a =  np.minimum(a,b)
a

输出:
array([1, 2, 1])

6.对数组重新排列

a = np.array([[1,2],[0.5,3],[3,4]])
b = [2, 1, 3]
c = np.argsort(b)
print(c)
bb = np.array(b)[c]
print(bb)
aa = np.array(a)[c]
print(aa)

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

python笔记:数组的一些操作 的相关文章

  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • 在 python 程序中合并第三方库的最佳实践是什么?

    下午好 我正在为我的工作编写一个中小型Python程序 该任务需要我使用 Excel 库xlwt and xlrd 以及一个用于查询 Oracle 数据库的库 称为CX Oracle 我正在通过版本控制系统 即CVS 开发该项目 我想知道围
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 如何使用Conda下载python包并随后离线安装?

    我知道通过 pip 我可以使用以下命令下载 Python 包 但 pip install 破坏了我的内部包依赖关系 当我做 pip download
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • 使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

    我有一个 CSV 文件 我正在使用 Python 来解析该文件 我发现文件中的某些行具有不同的列数 001 Snow Jon 19801201 002 Crom Jake 19920103 003 Wise Frank 19880303 l
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • Flask如何获取请求的HTTP_ORIGIN

    我想用我自己设置的 Access Control Allow Origin 标头做出响应 而弄清楚请求中的 HTTP ORIGIN 参数在哪里似乎很混乱 我在用着烧瓶 0 10 1 以及HTTP ORIGIN似乎是这个的特点之一object
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 类型错误:预期单个张量时的张量列表 - 将 const 与 tf.random_normal 一起使用时

    我有以下 TensorFlow 代码 tf constant tf random normal time step batch size 1 1 我正进入 状态TypeError List of Tensors when single Te
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • hardfault常见原因_STM32出现HardFault_Handler故障的原因及处理方法整理

    STM32出现HardFault Handler故障的原因主要有两个方面 1 内存溢出或者访问越界 这个需要自己写程序的时候规范代码 遇到了需要慢慢排查 2 堆栈溢出 增加堆栈的大小 出现问题时排查的方法 1 发生异常之后可首先查看LR寄存
  • 错误: 需要class, interface或enum

    package命令必须放在第一行 本例中放在了第4行 编译Java程序 LoginServlet java 4 错误 需要class interface或enum package lee 1 个错误 输出完毕 耗时 0 秒 正常终止
  • python seaborn 散点图矩阵_Python数据可视化库seaborn的使用总结

    seaborn是python中的一个非常强大的数据可视化库 它集成了matplotlib 下图为seaborn的官网 如果遇到疑惑的地方可以到官网查看 http seaborn pydata org 从官网的主页我们就可以看出 seabor
  • SpringCache之@CacheEvict注解的使用说明

    功能说明 我们在日常使用缓存的时候 不仅需要添加缓存 也需要删除缓存 Springcache中如何来实现缓存的删除呢 不错 CacheEvict就能帮助我们来实现缓存的删除 审核这个眼睛是喘气的 哪里来的广告 你告诉我 说的直白点 Cach
  • 【MyIbatis】MyIbatis 重要的类 Configuration 的创建

    1 概述 转载 MyBatis 想启动 得先问问它同不同意 话说 我最近一直在研究 MyBatis 研究 MyBatis 必然逃不了研究 Configuration 对象 这个对象简直是太重要了 它是 MyBatis 起步的核心环境配置 下
  • MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

    生命不在于相信奇迹 而在于创造奇迹 朱学恒 作者 不能再留遗憾了 专栏 MySQL学习 本文章主要内容 MySQL对表操作进阶 数据库约束 表的设计 新增 后续会更新进阶表的查询 文章目录 前言 1 数据库约束 NULL约束 UNIQUE
  • python网络爬虫之淘宝订单提取

    import asyncio import pyppeteer as pyp import time async def antiAntiCrawler page 为page添加反反爬虫手段 await page setUserAgent
  • 剑指 Offer(专项突击版)- 剑指 Offer II 064. 神奇的字典(20220809)

    设计一个使用单词列表进行初始化的数据结构 单词列表中的单词 互不相同 如果给出一个单词 请判定能否只将这个单词中一个字母换成另一个字母 使得所形成的新单词存在于已构建的神奇字典中 实现 MagicDictionary 类 MagicDict
  • cpp: Visitor Pattern

    file Gold h brief 访问者模式 Visitor Pattern C 14 行为模式 2023年6月8日 涂聚文 Geovin Du Visual Studio 2022 edit 文章来源 C 新经典设计模式 王健伟编著 清
  • 来看21届IT学子应该如何备战秋招?

    写在前面 今天是2020年7月14 离正式秋招可能就两个月时间了 睡了个午觉醒来脑子里突然就在想怎样才能在秋招中找到一份满意的工作 决定把自己所想写下来 这篇文章写给自己同时也写给即将找工作的2021届各位幸运宝宝 一 有计划有目标的提高自
  • android项目迁移到androidX:类映射(android.arch.*)

    android arch core 支持库类 AndroidX 类 core executor AppToolkitTaskExecutor androidx arch core executor AppToolkitTaskExecuto
  • pytorch3d安装遇到的一些坑和解决过程

    最近为了安装pytorch3d 折腾了两天 足足两天 要注意 安装pytorch3d之前 必须先安装pytorch torchvision Pytorch3d官方 是建议用conda install的方式来安装 也可以用pip来安装 pip
  • 如何实现一个IAM系统

    IAM Identity and Access Management 的缩写 即 身份识别与访问管理 它提供单点登录 强大的认证管理 集中的授权和审计 帮助企业安全 高效地管理IT系统账号和资源权限 产品简介 赛赋Cipher IDaaS是
  • Pandas的read_excel函数学习

    excel表的读取在python中是非常重要的 为了方便今后的使用 我将我学习用python读取excel表的过程记录下来 以便今后回顾时能快速想起各种方法 下图为示例中使用的excel表中的内容 sheet1 学生的信息 sheet2 成
  • windows:ngix无法绑定80端口

    问题 cmd运行ngix提示 nginx emerg bind to 0 0 0 0 80 failed 10013 An attempt was made to access a socket in a way forbidden by
  • vue 默认选中复选框案例

  • JFrame的一些简单操作

    前几天在Java课上 老师有一段代码用到了Jframe和Jbutton这两个东西 起初我以为这是我们老师自己写的类 但是之后我一查发现这是Java中用于操控一个小窗口而封装的类 于是我去了解一下这个类 然后写了一个非常简陋的窗口 publi
  • 紫外光刻胶 AR-N 4400/电子束光刻胶 AR-N7700/AR-P617 电子束光刻胶

    光刻胶又称抗蚀剂 是指通过紫外光 电子束 离子束 射线等的照射或辐射 其性质发生变化的耐蚀刻薄膜材料 按曝光光源和辐射源的不同 又分为紫外光刻胶 包括紫外正性光刻胶 紫外负性光刻胶 深紫外光刻胶 电子束胶 射线胶 离子束胶等 AR N 44
  • 微信小程序框架——uni-app

    文章目录 uni app介绍 1 什么是uni app 2 上线的产品 3 uni app的社区和规模 uni app基础 1 uni app初体验 2 项目结构介绍 3 样式和sass 4 基本语法 5 事件 6 组件 7 生命周期 补充
  • python笔记:数组的一些操作

    目录 1 对数组求指数和对数 2 数组的最值及其索引 3 按照行或者列求均值 求和 最大值 最小值 标准差 方差 4 取对角线元素 5 取两个数组对应的最大或最小值 6 对数组重新排列 1 对数组求指数和对数 参考 指数 math exp