目录

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

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 npr = np.array([[-1,2,-3]])
# 输出:2
a = np.argmin(r)
print(a)
# 输出:1
b = np.argmax(r)
print(b)

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

参考

import numpy as npa = 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())
# 66print(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.5print(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.5print(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.452052529534663print(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. ]]

python笔记:数组的一些操作相关推荐

  1. Python笔记-U2控件操作和操作超时

    以豌豆荚为例: 普通的操作: import uiautomator2 as u2d = u2.connect_usb("8681-A01-0xc60fcc9d") d.app_st ...

  2. 初学者python笔记(文件的操作)

    当Python学到一定程度的时候,就要跟文件打交道了.到以后自己的写程序,对文件的操作是非常频繁的,因此学会对文件的操作也是Python学习的一项基础任务. 打开文件与读取文件 基本的打开操作 f = ...

  3. 【Python笔记】字符串常见操作

    Python字符串常见操作 字符串的拼接 计算字符串的长度 截取字符串 分隔字符串 字符串的替换 字符串的检索 字符串大小写转换 去掉字符串中的空格和特殊字符 格式化字符串 字符串的拼接 字符串不允许 ...

  4. 【Python笔记】列表基础操作 :创建,增加、删除、查询。附加:练习题。用简单代码解释。

    Python:列表基础操作 创建,增加.删除.查询.附加练习题.用简单代码解释. 目录 Python:列表基础操作 演示环境 第一部分:列表(list) 1. 创建空列表 2. 创建只有默认值的列表 ...

  5. python笔记-数组

    '''a=['小明',18,1] print(a) #一维数组新增,删除 list1 = ['小明',18,1.70] list1.append(3) del list1[1] print(list1 ...

  6. Python笔记_50_ORM_多表操作

    文章目录 ORM多表操作 创建模型 一对多的新增 多对多的新增 关联管理器(RelatedManager) 基于对象的跨表查询 一对多关系 一对一的关系 多对多的关系 基于双下划线的跨表查询 一对多关 ...

  7. python io操作有什么_Python笔记:文件IO操作

    读取文件 使用open()打开文件,文件不存在会抛出IOError错误. try: f = open('/path/to/file', 'r') print(f.read()) finally: if ...

  8. Python数据挖掘笔记 七 .PCA降维操作及subplot子图绘制

    Python数据挖掘笔记 七 .PCA降维操作及subplot子图绘制 这篇文章主要介绍四个知识点,也是我那节课讲课的内容.1.PCA降维操作:2.Python中Sklearn的PCA扩展包:3.Ma ...

  9. python 字符串数组_python用法笔记(数组(list、touple、dict)、字符串)

    1.产生n个全为1的数组 a=[1]*n 2.字符数字转化 int('12') float('12.5') str(123.45) ASCII码转为相应的字符:chr(97) 字符转化为相应的ASCI ...

  10. python复制指定字符串_python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)...

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

最新文章

  1. Linux中断流程分析
  2. 计算机网络——OSI与TCPIP体系架构、功能及协议
  3. 017_SpringBoot异常处理方式-自定义错误页面
  4. 驱动备份工具哪个好_原神元素反应工具人推荐一览 元素反应工具人哪个好
  5. UDP和TCP的区别(详细)
  6. php的冷门但是很实用的函数
  7. 小学生300道练习题程序及问题
  8. 分享一套基于SpringBoot和Vue的企业级中后台开源项目,代码很规范!
  9. 需求不容易确定的项目不要接
  10. MySQL四种事务隔离级的说明
  11. UART协议快速扫盲(图文并茂+超详细)
  12. html求相关系数,相关系数,确定系数(R^2)计算公式与在线计算器_三贝计算网_23bei.com...
  13. c语言寻找完全平方数,菜鸟求助,要怎么求完全平方数?
  14. 无线网技术——知识点
  15. WKWebView预初始化
  16. 再谈:数据治理的长效运营机制!
  17. 软件测试 | 测试开发 | 黑盒测试方法论—场景法
  18. SQL44 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005
  19. 边缘计算使能智慧电网
  20. JAVA微信小程序小说电子书阅读系统毕业设计 开题报告

热门文章

  1. struts解决form提交的中文参数乱码问题
  2. 成功开源项目证明Web是开源最大成功
  3. C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号
  4. 基于stm32的can总线彻底研究
  5. android init.rc中启动的service 默认是disable的,后续如何启动此服务
  6. linux 毕业设计 apache,毕业论文基于Linux的Apache服务器的设计与设计6喜欢就下吧...
  7. 区块链BaaS云服务(25)边界智能 IRITA服务
  8. C++ Primer 5th笔记(chap 15 OOP)继承之派生类
  9. optee3.14中的异常向量表解读--中断处理解读
  10. openssl aes加解密的使用