python笔记:数组的一些操作
目录
- 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笔记:数组的一些操作相关推荐
- Python笔记-U2控件操作和操作超时
以豌豆荚为例: 普通的操作: import uiautomator2 as u2d = u2.connect_usb("8681-A01-0xc60fcc9d") d.app_st ...
- 初学者python笔记(文件的操作)
当Python学到一定程度的时候,就要跟文件打交道了.到以后自己的写程序,对文件的操作是非常频繁的,因此学会对文件的操作也是Python学习的一项基础任务. 打开文件与读取文件 基本的打开操作 f = ...
- 【Python笔记】字符串常见操作
Python字符串常见操作 字符串的拼接 计算字符串的长度 截取字符串 分隔字符串 字符串的替换 字符串的检索 字符串大小写转换 去掉字符串中的空格和特殊字符 格式化字符串 字符串的拼接 字符串不允许 ...
- 【Python笔记】列表基础操作 :创建,增加、删除、查询。附加:练习题。用简单代码解释。
Python:列表基础操作 创建,增加.删除.查询.附加练习题.用简单代码解释. 目录 Python:列表基础操作 演示环境 第一部分:列表(list) 1. 创建空列表 2. 创建只有默认值的列表 ...
- python笔记-数组
'''a=['小明',18,1] print(a) #一维数组新增,删除 list1 = ['小明',18,1.70] list1.append(3) del list1[1] print(list1 ...
- Python笔记_50_ORM_多表操作
文章目录 ORM多表操作 创建模型 一对多的新增 多对多的新增 关联管理器(RelatedManager) 基于对象的跨表查询 一对多关系 一对一的关系 多对多的关系 基于双下划线的跨表查询 一对多关 ...
- python io操作有什么_Python笔记:文件IO操作
读取文件 使用open()打开文件,文件不存在会抛出IOError错误. try: f = open('/path/to/file', 'r') print(f.read()) finally: if ...
- Python数据挖掘笔记 七 .PCA降维操作及subplot子图绘制
Python数据挖掘笔记 七 .PCA降维操作及subplot子图绘制 这篇文章主要介绍四个知识点,也是我那节课讲课的内容.1.PCA降维操作:2.Python中Sklearn的PCA扩展包:3.Ma ...
- python 字符串数组_python用法笔记(数组(list、touple、dict)、字符串)
1.产生n个全为1的数组 a=[1]*n 2.字符数字转化 int('12') float('12.5') str(123.45) ASCII码转为相应的字符:chr(97) 字符转化为相应的ASCI ...
- python复制指定字符串_python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)...
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
最新文章
- Linux中断流程分析
- 计算机网络——OSI与TCPIP体系架构、功能及协议
- 017_SpringBoot异常处理方式-自定义错误页面
- 驱动备份工具哪个好_原神元素反应工具人推荐一览 元素反应工具人哪个好
- UDP和TCP的区别(详细)
- php的冷门但是很实用的函数
- 小学生300道练习题程序及问题
- 分享一套基于SpringBoot和Vue的企业级中后台开源项目,代码很规范!
- 需求不容易确定的项目不要接
- MySQL四种事务隔离级的说明
- UART协议快速扫盲(图文并茂+超详细)
- html求相关系数,相关系数,确定系数(R^2)计算公式与在线计算器_三贝计算网_23bei.com...
- c语言寻找完全平方数,菜鸟求助,要怎么求完全平方数?
- 无线网技术——知识点
- WKWebView预初始化
- 再谈:数据治理的长效运营机制!
- 软件测试 | 测试开发 | 黑盒测试方法论—场景法
- SQL44 将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005
- 边缘计算使能智慧电网
- JAVA微信小程序小说电子书阅读系统毕业设计 开题报告
热门文章
- struts解决form提交的中文参数乱码问题
- 成功开源项目证明Web是开源最大成功
- C#获取电脑硬件信息(CPU ID、主板ID、硬盘ID、BIOS编号
- 基于stm32的can总线彻底研究
- android init.rc中启动的service 默认是disable的,后续如何启动此服务
- linux 毕业设计 apache,毕业论文基于Linux的Apache服务器的设计与设计6喜欢就下吧...
- 区块链BaaS云服务(25)边界智能 IRITA服务
- C++ Primer 5th笔记(chap 15 OOP)继承之派生类
- optee3.14中的异常向量表解读--中断处理解读
- openssl aes加解密的使用