元素操作

  • 一、访问ndarray中的元素--索引和切片
    • 1、基本索引和切片
      • 1.1 一维数组的索引和切片
      • 1.2 高维数组的基本索引和切片
    • 2、高级索引
      • 2.1 整数数组索引和切片
      • 2.2 布尔索引
  • 二、NumPy运算
    • 1、算术运算相关函数
    • 2、取整函数
    • 3、统计函数
  • 最大值 最小值 均值 中位数 标准差 方差
    • 4、排序和索引函数
    • 5、唯一化
    • 6、集合逻辑

一、访问ndarray中的元素–索引和切片

import numpy as np #全部行都能输出 from IPython.core.interactiveshell
import InteractiveShell InteractiveShell.ast_node_interactivity = "all"

1、基本索引和切片

1.1 一维数组的索引和切片

arr1 = np.random.randint(0,20,10)
arr1

arr1[3]

#切片语法:ndarray[start:stop:step]
#如果start被省略,默认从第0个位置开始切片
#如果stop被省略,默认切片到最后,包含最后位置的元素
#如果step被省略,默认步长为1
arr1[:]

arr1[2:5]
#终止值位置如果被指定,这个位置是不会被切到的

arr1[1:7:2]

arr1
反向切片的时候一定要注意,切片的方向要和步长方向一致,否则不能切到任何元素
arr1[-2:-5:-1]

arr1
arr1[::-1]
arr1[-1:0:-1]

arr1[-1:-10:-1]

arr1[-1:-11:-1]

1.2 高维数组的基本索引和切片

arr2 = np.random.randint(0,20,(3,3))
arr2

arr2[1]
arr2[2][1]

arr1
arr1[1]
arr3 = np.random.randint(0,20,(2,3,3))
arr3

arr3[0][0][1:]

通过基本索引和切片切出来的新数组,和原数组之间相互不独立,对其中一个数组内元素进行更改的时候,
另一个数组内对应的元素也会发生相应的改变

arr1
arr1_1=arr1[3:6] #浅拷贝arr1_1

arr1_1[1] = 99
arr1_1

arr1
arr1_2 = arr1[6:8].copy() #深拷贝,切片出来的数组和原数组之间相互独立,互不影响
arr1_2

arr1_2[1] = 88
array([15, 88])
arr1

2、高级索引

2.1 整数数组索引和切片

arr1
arr1[[1,2,4,5]]
arr1_3 = arr1[[1,2,4,5]]
arr1_3

arr1_3[2] = 66
arr1_3

arr1
arr2
arr2[[0,1,2],[0,1,2]] #切片语法中arr[[元素所在的数组中第0个轴上的位置信息],[元素所在的数组 中第1个轴上的位置信息].......]

arr3
#切取18,4,14
arr3[[0,0,1],[0,0,2],[0,2,0]]

2.2 布尔索引

arr1
arr1>10

arr1[arr1>10]

二、NumPy运算

1、算术运算相关函数

arr6 = np.array([2,2,2])
arr6
np.exp(2) #自然数e的平方

np.exp(arr6)

np.e
np.e**2

np.exp2(arr6)

pow(3,2)
np.power(arr6,3)

np.power(3,arr6)
np.square(arr6)

np.sqrt(arr6)
np.log(arr6) #求自然对数

np.log2(arr6)
np.log10(arr6)
np.log(4)/np.log(2) #求的是以2为底4的对数

10//3
10%3 #余数
arr6
np.mod(arr6,2)
arr7 = np.array([3,3,3])
np.mod(arr6,arr7)

2、取整函数

  • numpy.around() 这个函数返回四舍五入到所需精度的值。
  • numpy.floor() 向下取整 此函数返回不大于输入参数的最大整数。
  • numpy.ceil()向上取整 本函数返回输入值的上限
arr8 = np.random.randn(8)
arr8

np.around(arr8) #四舍五入,遇0.5取偶
np.around(arr8,3)

arr9 = np.array([1.5,2.5,3.5,4.5])
arr9

np.around(arr9)
np.floor(arr9) #向下取整,找到距离浮点数最近的下限整数

arr10 = np.array([1.99999999,1.0000001])
arr10
np.floor(arr10)

np.ceil(arr10) #向上取整

3、统计函数

最大值 最小值 均值 中位数 标准差 方差

arr11 = np.random.randint(0,21,(3,3))
arr11

np.amax(arr11)

np.amax(arr11,axis=0)
np.amax(arr11,axis=1)

np.amin(arr11)
np.amin(arr11,axis=0)
np.amin(arr11,axis=1)

np.sum(arr11)
np.sum(arr11,axis=0)
np.mean(arr11)
np.mean(arr11,axis=0)
np.mean(arr11,axis=1)

array([2., 7., 6.])

array([1.66666667, 5.33333333, 8. ])

 np.var(arr11) np.var(arr11,axis=0) np.var(arr11,axis=1)

26.666666666666668

 array([ 2.66666667, 34.66666667, 28.66666667])array([ 5.55555556, 29.55555556, 24.66666667])
np.std(arr11) np.std(arr11,axis=0)np.std(arr11,axis=1)

5.163977794943222

4、排序和索引函数

arr13 = np.random.randint(1,30,9)
arr13

np.sort(arr13) #升序排序
np.sort(arr13)[::-1] #降序排序

arr14 = np.random.randint(1,30,(4,3))
arr14

np.sort(arr14) #默认按最内侧轴进行排序
np.nonzero(arr15) #返回的是非零元素在原数组中的位置
np.where(arr13>10) #这里返回的是位置信息
arr13[np.where(arr13>10)]

arr16 = np.random.randint(1,30,9)
arr16

5、唯一化

  • np.unique() 去重函数
arr13
array([23, 18, 26, 29, 7, 18, 17, 8, 2])
np.unique(arr13)
array([ 2, 7, 8, 17, 18, 23, 26, 29])
`np.unique(arr13,return_index=True,return_counts=True)`

(array([ 2, 7, 8, 17, 18, 23, 26, 29]), array([8, 4, 7, 6, 1, 0, 2, 3], dtype=int64), array([1, 1, 1, 1, 2, 1, 1, 1], dtype=int64))

6、集合逻辑

  • np.in1d() 验证元素是否在给定序列中
  • np.intersect1d() 求交集
  • np.union1d() 求并集
  • np.setdiff1d() 求差集
#求交集 并集 差集 判断元素是否在数组当中
arr13
arr16

array([23, 18, 26, 29, 7, 18, 17, 8, 2]) array([ 1, 4, 1, 18, 11, 17,
15, 3, 28])

#判断元素是否在数组中np.in1d(arr13,arr16)
 array([False, True, False, False, False, True, True, False, False]) 


 np.in1d(arr16,arr13)
  array([False, False, False, True, False, True, False, False, False]) np.in1d(arr16,arr13,invert=True)
  array([ True, True, True, False, True, False, True, True, True]) arr16[np.in1d(arr16,arr13,invert=True)]
  array([ 1, 4, 1, 11, 15, 3, 28])
  np.intersect1d(arr13,arr16) #求交集

  np.union1d(arr13,arr16)
   #求并集 array([ 1, 2, 3, 4, 7, 8, 11, 15, 17, 18, 23, 26, 28, 29])

大数据清洗2(元素操作)相关推荐

  1. layui 如何去dom_常用元素操作 - layui.element

    元素功能的开启只需要加载element模块即会自动完成,譬如tab选项卡切换.导航菜单滑动切换效果.面包屑导航.进度条等,使用这些小交互功能的前提就是:拥有符合这些小功能的所需正确的HTML结构,以及 ...

  2. Tensor:逐元素操作

    逐元素操作 这部分操作会对tensor的每一个元素(point-wise,又名element-wise)进行操作,此类操作的输入与输出形状一致.常用的操作如表3-4所示. 表3-4: 常见的逐元素操作 ...

  3. layui内置模块(element常用元素操作)

    常用元素操作是个什么鬼,从官方解释简单来说就是在页面中有一些动态的效果,当然不是我们说的动态网页那个动态,这些动态效果呢,就是通过我们去加载element模块以后,默认为页面的这些元素添加的一些动态效 ...

  4. 读书笔记:大数据清洗技术 02

    读书笔记:大数据清洗技术 作者:哈尔滨工业大学博导王宏志 第二章 大数据处理技术概述 上一章我们主要从大数据的定义及特征,大数据的质量问题,大数据清洗技术的进展和本书的技术创新点四个方面对这本书有了初 ...

  5. MATLAB中对矩阵元素操作的for循环优化方法

    众所周知,MATLAB程序效率最低最有潜力的地方便是循环了.最常见的循环莫过于对矩阵中的每一个元素进行操作,对于编程思维还在C语言或者C++,JAVA的人来说,第一反应就是两层循环,先来个 " ...

  6. 二、属性操作,文本属性值,元素操作,尺寸、位置操作

    1.1. jQuery 属性操作 jQuery 常用属性操作有三种:prop() / attr() / data() ; 1.1.1 元素固有属性值 prop() 所谓元素固有属性就是元素本身自带的属 ...

  7. js初识、JS基础交互、JavaScript 元素操作

    js初识 js外链引入 外链引入.js 通过script标签的src属性引入外部js文件在外部新建一个后缀名为js的文件注意:用于引入外部js文件的script标签,就不要再写其他的js代码,不会执行 ...

  8. 软件测试 自动化测试 Web自动化测试01 selenium 定位元素方法 元素操作 自动化脚本开发

    文章目录 1 自动化测试概述 1.1 测试的目的 1.2 自动化测试的优点 1.3 自动化测试的缺点 1.4 自动化测试工具 1.5 自动化测试流程 2 selenium基础 2.1 selenium ...

  9. 我艹,MySQL数据量大时,delete操作无法命中索引。

    来自:Java面试那些事儿 最近,在脉脉上看到一个楼主提出的问题:MySQL数据量大时,delete操作无法命中索引:并且还附上了相关案例截图. 最终,楼主通过开启MySQL分析优化器追踪,定位到是优 ...

最新文章

  1. python 元组使用_Python3
  2. 重学java基础第二课:java和python分析
  3. cocos2d-x中使用可加密Sqlite存储玩家数据
  4. 微信团队分享:微信支付代码重构以及软件架构上的思考
  5. word中插入代码_如何在Word中优雅的插入公式
  6. usb声卡驱动_艾肯iCON ProDrive第三代USB声卡驱动全新发布!
  7. 拼音表大全图_【居家乐学】让拼音活起来
  8. 介绍几种wifi电源管理模式
  9. C++:建立一个被称为sroot()的函数,返回其参数的二次方根。重载sroot()3次,让它返回整数、长整数与双精度的二次方根
  10. vue动态style设置背景图片
  11. php需要做临时表嘛,php中使用临时表查询数据的一个例子
  12. IC从业人员基础:计算机基础知识缩写
  13. 计算机三级相当于什么水平,【catti笔译三级证书相当于什么水平?】- 环球网校...
  14. Java并发包多线程总结
  15. 2022.12.10-参加中国电子学会的青少年软件编程等级考试C语言8级(通过)
  16. 并查集(究竟有几个祖先?)
  17. 07thinkphp第二天总结
  18. python autocad显示_python 使用pyautocad操作AutoCAD
  19. Sofa-jraft的Rpc调用服务端分析
  20. 贪食蛇java源码_JAVA 贪食蛇 源码

热门文章

  1. 学习opencv:PS滤镜—浮雕
  2. 带你走进API安全的知识海洋
  3. 办公软件使用学习笔记:excel第五节。excel表格筛选和排序使用方法总结。
  4. OpenCV拷贝与ROI
  5. React实现局部刷新
  6. 让慢行回归城市—佛山祖庙商圈慢行系统改善工程
  7. 神经网络原理的简单介绍,神经网络几何原理图
  8. 手推向量投影长度、投影向量
  9. Excel 防止一列重复输入
  10. Buty Adidas Alphabounce Engineered Polska uwolnienie