目录

简单了解数据分析

  • 数据分析(是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律)

  1. 数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。
  2. 这一过程也是质量管理体系的支持过程。在实用中,数据分析可帮助人们作出判断,以便采取适当行动。
  3. 数据分析的数学基础在20世纪早期就已确立,但直到计算机的出现才使得实际操作成为可能,并使得数据分析得以推广。
  4. 数据分析是数学与计算机科学相结合的产物。

Python数据分析三剑客(Numpy,Pandas,Matplotlib)

  • NumPy

  1. NumPy(Numerical Python) Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
  2. NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant Numeric 中结合了另一个同性质的程序库 Numarray 的特色,
  3. 并加入了其它扩展而开发了 NumPyNumPy 为开放源代码并且由许多协作者共同维护开发。
  4. NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:
  5. 一个强大的N维数组对象 ndarray
  6. 广播功能函数
  7. 整合 C/C++/Fortran 代码的工具
  8. 线性代数、傅里叶变换、随机数生成等功能

Numpy常用函数用法大全目录

  1. #Numpy常用函数用法大全目录
  2. A
  3. array 创建一个np数组
  4. arange 返回指定范围内的数组
  5. argmax 返回沿轴axis最大值的索引
  6. B
  7. bincount 返回数组中的值中索引出现的次数
  8. C
  9. copysign b中各元素的符号赋值给数组a的对应元素
  10. D
  11. dot 矩阵运算
  12. E
  13. exp eN次方
  14. F
  15. full 返回给定形状和类型的新数组,填充fill_value
  16. G
  17. gradient 返回N维数组的梯度
  18. H
  19. hsplit 通过指定要返回的相同shapearray的数量,或者通过指定分割应该发生之后的列来沿着其横轴拆分原array
  20. I
  21. isnan 测试NaN的元素,并将结果作为布尔数组返回
  22. L
  23. log e的指数
  24. linspace 在指定的间隔内返回均匀间隔的数字
  25. M
  26. max 数组中最大的键
  27. R
  28. reshape 不改变数据同时改变数据格式
  29. random.choice 随机分布一个数组
  30. random.randn 返回一个或一组样本,具有标准正态分布
  31. S
  32. sum 每个数组各个键的总和
  33. v
  34. vsplit 沿着垂直轴分割,其分割方式与hsplit用法相同
  35. Z
  36. zeros_like 生成0填充形状和传入数组相同的数组
  37. zeros 返回来一个给定形状和类型的用0填充的数组
  • Pandas

  1. pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,
  2. 提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,
  3. 它是使Python成为强大而高效的数据分析环境的重要因素之一。
  • Matplotlib

  1. Matplotlib 是一个 Python 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
  2. 通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

简单使用np.array()

  • 安装NumPy pip3 install numpy

  • 一维数组创建

  1. import numpy as np #as np别名方便调用
  2. np.array([1,2,3,4,5])
  3. #执行结果 所有代码使用的是Jupyter Notebook执行,所以没有print
  4. array([1, 2, 3, 4, 5])
  • 二维数组创建

  1. import numpy as np
  2. np.array([[1,2,3],[4,5,6]])
  3. #执行结果
  4. array([[1, 2, 3],
  5. [4, 5, 6]])
  6. np.array([[1,1.2,3],[4,5,'six']])
  7. #执行结果
  8. array([['1', '1.2', '3'],
  9. ['4', '5', 'six']], dtype='<U32')
  • 注意

  1. - numpy默认ndarray的所有元素的类型是相同的
  2. - 如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int

使用np的routines函数创建数组

  • np.linspace 等差数列

  1. import numpy as np
  2. np.linspace(1,100,num=10)
  3. #执行结果
  4. array([ 1., 12., 23., 34., 45., 56., 67., 78., 89., 100.])
  • np.arange 使用步长

  1. import numpy as np
  2. np.arange(0,100,2)
  3. #执行结果
  4. array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32,
  5. 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66,
  6. 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98])
  • np.random.randint 随机数组

  1. # 随机原理
  2. # - 随机因子:表示的是一个无时无刻都在变化的数值(比如时间)
  3. import numpy as np
  4. np.random.seed(10)#指定随机因子
  5. np.random.randint(0,100,size=(4,5))
  6. #执行结果 不会变
  7. array([[ 9, 15, 64, 28, 89],
  8. [93, 29, 8, 73, 0],
  9. [40, 36, 16, 11, 54],
  10. [88, 62, 33, 72, 78]])
  11. #np.random.seed(10) 不指定随机因子
  12. np.random.randint(0,100,size=(4,5))
  13. #执行结果 第一次
  14. array([[49, 51, 54, 77, 69],
  15. [13, 25, 13, 92, 86],
  16. [30, 30, 89, 12, 65],
  17. [31, 57, 36, 27, 18]])
  18. #执行结果 第二次
  19. array([[93, 77, 22, 23, 94],
  20. [11, 28, 74, 88, 9],
  21. [15, 18, 80, 71, 88],
  22. [11, 17, 46, 7, 75]])
  23. #执行结果 第三次
  24. array([[28, 33, 84, 96, 88],
  25. [44, 5, 4, 71, 88],
  26. [88, 50, 54, 34, 15],
  27. [77, 88, 15, 6, 85]])
  28. np.random.random(size=(5,3))
  29. #执行结果
  30. array([[0.82110566, 0.15115202, 0.38411445],
  31. [0.94426071, 0.98762547, 0.45630455],
  32. [0.82612284, 0.25137413, 0.59737165],
  33. [0.90283176, 0.53455795, 0.59020136],
  34. [0.03928177, 0.35718176, 0.07961309]])

ndarray N维数组对象

  1. NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器,该对象由两部分组成:
  2. - 实际的数据;
  3. - 描述这些数据的元数据;
  4. 大部分的数组操作仅仅是修改元数据部分,而不改变其底层的实际数据。数组的维数称为秩,简单来说就是如果你需要获取数组中一个特定元素所需的坐标数,
  5. a是一个2×3×4的矩阵,你索引其中的一个元素必须给定三个坐标a[x,y,z],故它的维数就是3。而轴可以理解为一种对数组空间的分割,以数组a为例,
  6. 如果我们以0为轴,那么a可以看成是一个由两个元素构成的数组,其中每个元素都是一个3×4的数组。
  7. 我们可以直接将数组看作一种新的数据类型,就像listtupledict一样,但数组中所有元素的类型必须是一致的,Python支持的数据类型有整型、
  8. 浮点型以及复数型,但这些类型不足以满足科学计算的需求,因此NumPy中添加了许多其他的数据类型,如boolintiint64float32complex64等。
  9. 同时,它也有许多其特有的属性和方法。
  10. 常用ndarray属性:
  11. dtype 描述数组元素的类型
  12. shape tuple表示的数组形状
  13. ndim 数组的维度
  14. size 数组中元素的个数
  15. itemsize 数组中的元素在内存所占字节数
  16. T 数组的转置
  17. flat 返回一个数组的迭代器,对flat赋值将导致整个数组的元素被覆盖
  18. real/imag 给出复数数组的实部/虚部
  19. nbytes 数组占用的存储空间
  20. 常用ndarray方法:
  21. reshape(…) 返回一个给定shape的数组的副本
  22. resize(…) 返回给定shape的数组,原数组shape发生改变
  23. flatten()/ravel() 返回展平数组,原数组不改变
  24. astype(dtype) 返回指定元素类型的数组副本
  25. fill() 将数组元素全部设定为一个标量值
  26. sum/Prod() 计算所有数组元素的和/积
  27. mean()/var()/std() 返回数组元素的均值/方差/标准差
  28. max()/min()/ptp()/median() 返回数组元素的最大值/最小值/取值范围/中位数
  29. argmax()/argmin() 返回最大值/最小值的索引
  30. sort() 对数组进行排序,axis指定排序的轴;kind指定排序算法,默认是快速排序
  31. view()/copy() view创造一个新的数组对象指向同一数据;copy是深复制
  32. tolist() 将数组完全转为列表,注意与直接使用list(array)的区别
  33. compress() 返回满足条件的元素构成的数组

ndarray的基本操作

索引

  1. import numpy as np
  2. #准备
  3. arr = np.random.randint(60,120,size=(6,8))
  4. arr
  5. #执行结果 数组
  6. array([[102, 68, 86, 84, 80, 104, 90, 77],
  7. [112, 92, 113, 82, 99, 91, 92, 83],
  8. [ 84, 93, 81, 111, 86, 75, 88, 71],
  9. [114, 101, 77, 111, 67, 73, 91, 64],
  10. [ 90, 101, 73, 73, 92, 84, 107, 96],
  11. [115, 102, 116, 81, 66, 83, 88, 72]])
  12. arr[1] #直结索引取到的是 行
  13. #执行结果
  14. array([112, 92, 113, 82, 99, 91, 92, 83])
  15. arr[1][2]#直结索引再索引 取到的是 某行的某个元素
  16. #执行结果
  17. 113
  18. #小结:一维与列表完全一致 多维时同理

切片

  1. #还是沿用上边的数据
  2. array([[102, 68, 86, 84, 80, 104, 90, 77],
  3. [112, 92, 113, 82, 99, 91, 92, 83],
  4. [ 84, 93, 81, 111, 86, 75, 88, 71],
  5. [114, 101, 77, 111, 67, 73, 91, 64],
  6. [ 90, 101, 73, 73, 92, 84, 107, 96],
  7. [115, 102, 116, 81, 66, 83, 88, 72]])
  8. #获取二维数组前两行
  9. arr[0:2]# 直接切片取得是行 取先不取后
  10. #执行结果
  11. array([[102, 68, 86, 84, 80, 104, 90, 77],
  12. [112, 92, 113, 82, 99, 91, 92, 83]])
  13. #获取二维数组前两列
  14. arr[:,0:2]# 应用了逗号的机制,逗号左边为第一个维度(行),右边为第二个维度(列) :代表不对行做操作
  15. #执行结果
  16. array([[102, 68],
  17. [112, 92],
  18. [ 84, 93],
  19. [114, 101],
  20. [ 90, 101],
  21. [115, 102]])
  22. #获取二维数组前两行和前三列数据
  23. arr[0:2,0:3] #逗号 左边行 右边列
  24. #执行结果
  25. array([[102, 68, 86],
  26. [112, 92, 113]])
  27. #将数组的行倒序
  28. arr[::-1]
  29. #执行结果
  30. array([[115, 102, 116, 81, 66, 83, 88, 72],
  31. [ 90, 101, 73, 73, 92, 84, 107, 96],
  32. [114, 101, 77, 111, 67, 73, 91, 64],
  33. [ 84, 93, 81, 111, 86, 75, 88, 71],
  34. [112, 92, 113, 82, 99, 91, 92, 83],
  35. [102, 68, 86, 84, 80, 104, 90, 77]])
  36. #全部倒序
  37. arr[::-1,::-1]
  38. #执行结果
  39. array([[ 72, 88, 83, 66, 81, 116, 102, 115],
  40. [ 96, 107, 84, 92, 73, 73, 101, 90],
  41. [ 64, 91, 73, 67, 111, 77, 101, 114],
  42. [ 71, 88, 75, 86, 111, 81, 93, 84],
  43. [ 83, 92, 91, 99, 82, 113, 92, 112],
  44. [ 77, 90, 104, 80, 84, 86, 68, 102]])

变形 (arr.reshape() 机器学习会用到)

  1. #使用arr.reshape()函数,注意参数是一个tuple!
  2. #准备数据
  3. import numpy as np
  4. arr = np.random.randint(60,120,size=(6,8))
  5. arr
  6. array([[101, 67, 88, 94, 75, 82, 105, 96],
  7. [100, 86, 112, 69, 79, 100, 65, 114],
  8. [ 72, 86, 95, 84, 112, 94, 103, 115],
  9. [ 83, 110, 78, 60, 67, 86, 113, 92],
  10. [ 74, 118, 79, 86, 63, 97, 81, 106],
  11. [112, 118, 83, 105, 72, 78, 94, 88]])
  12. #将数组改成一维数组
  13. arr.reshape((48,))
  14. #执行结果 一个中括号是一维 注意变形元素总数量不能改变,不然会报错
  15. array([101, 67, 88, 94, 75, 82, 105, 96, 100, 86, 112, 69, 79,
  16. 100, 65, 114, 72, 86, 95, 84, 112, 94, 103, 115, 83, 110,
  17. 78, 60, 67, 86, 113, 92, 74, 118, 79, 86, 63, 97, 81,
  18. 106, 112, 118, 83, 105, 72, 78, 94, 88])
  19. #修改数组,不改变维数
  20. arr.reshape((48,1))
  21. #执行结果
  22. array([[101],
  23. [ 67],
  24. [ 88],
  25. [ 94],
  26. [ 75],
  27. [ 82],
  28. [105],
  29. [ 96],
  30. [100],
  31. [ 86],
  32. [112],
  33. [ 69],
  34. [ 79],
  35. [100],
  36. [ 65],
  37. [114],
  38. [ 72],
  39. [ 86],
  40. [ 95],
  41. [ 84],
  42. [112],
  43. [ 94],
  44. [103],
  45. [115],
  46. [ 83],
  47. [110],
  48. [ 78],
  49. [ 60],
  50. [ 67],
  51. [ 86],
  52. [113],
  53. [ 92],
  54. [ 74],
  55. [118],
  56. [ 79],
  57. [ 86],
  58. [ 63],
  59. [ 97],
  60. [ 81],
  61. [106],
  62. [112],
  63. [118],
  64. [ 83],
  65. [105],
  66. [ 72],
  67. [ 78],
  68. [ 94],
  69. [ 88]])
  70. arr.reshape((-1,48))
  71. #执行结果
  72. array([[101, 67, 88, 94, 75, 82, 105, 96, 100, 86, 112, 69, 79,
  73. 100, 65, 114, 72, 86, 95, 84, 112, 94, 103, 115, 83, 110,
  74. 78, 60, 67, 86, 113, 92, 74, 118, 79, 86, 63, 97, 81,
  75. 106, 112, 118, 83, 105, 72, 78, 94, 88]])
  76. arr.reshape((12,-1))#-1可以自动补齐
  77. #执行结果
  78. array([[101, 67, 88, 94],
  79. [ 75, 82, 105, 96],
  80. [100, 86, 112, 69],
  81. [ 79, 100, 65, 114],
  82. [ 72, 86, 95, 84],
  83. [112, 94, 103, 115],
  84. [ 83, 110, 78, 60],
  85. [ 67, 86, 113, 92],
  86. [ 74, 118, 79, 86],
  87. [ 63, 97, 81, 106],
  88. [112, 118, 83, 105],
  89. [ 72, 78, 94, 88]])
  90. arr.reshape((-1,12))
  91. #执行结果
  92. array([[101, 67, 88, 94, 75, 82, 105, 96, 100, 86, 112, 69],
  93. [ 79, 100, 65, 114, 72, 86, 95, 84, 112, 94, 103, 115],
  94. [ 83, 110, 78, 60, 67, 86, 113, 92, 74, 118, 79, 86],
  95. [ 63, 97, 81, 106, 112, 118, 83, 105, 72, 78, 94, 88]])
  96. #将数组改为三维
  97. arr.reshape((2,4,6))
  98. #执行结果
  99. array([[[101, 67, 88, 94, 75, 82],
  100. [105, 96, 100, 86, 112, 69],
  101. [ 79, 100, 65, 114, 72, 86],
  102. [ 95, 84, 112, 94, 103, 115]],
  103. [[ 83, 110, 78, 60, 67, 86],
  104. [113, 92, 74, 118, 79, 86],
  105. [ 63, 97, 81, 106, 112, 118],
  106. [ 83, 105, 72, 78, 94, 88]]])

级联 (np.concatenate(),下面图片修改有实际应用)

  1. #一维,二维,多维数组的级联,实际操作中级联多为二维数组 (对一个或多个数组做拼接)
  2. #准备数据
  3. import numpy as np
  4. arr = np.random.randint(60,120,size=(6,8))
  5. arr
  6. array([[101, 67, 88, 94, 75, 82, 105, 96],
  7. [100, 86, 112, 69, 79, 100, 65, 114],
  8. [ 72, 86, 95, 84, 112, 94, 103, 115],
  9. [ 83, 110, 78, 60, 67, 86, 113, 92],
  10. [ 74, 118, 79, 86, 63, 97, 81, 106],
  11. [112, 118, 83, 105, 72, 78, 94, 88]])
  12. np.concatenate((arr,arr),axis=1) # 轴向 0列 1行
  13. #执行效果
  14. array([[101, 67, 88, 94, 75, 82, 105, 96, 101, 67, 88, 94, 75,
  15. 82, 105, 96],
  16. [100, 86, 112, 69, 79, 100, 65, 114, 100, 86, 112, 69, 79,
  17. 100, 65, 114],
  18. [ 72, 86, 95, 84, 112, 94, 103, 115, 72, 86, 95, 84, 112,
  19. 94, 103, 115],
  20. [ 83, 110, 78, 60, 67, 86, 113, 92, 83, 110, 78, 60, 67,
  21. 86, 113, 92],
  22. [ 74, 118, 79, 86, 63, 97, 81, 106, 74, 118, 79, 86, 63,
  23. 97, 81, 106],
  24. [112, 118, 83, 105, 72, 78, 94, 88, 112, 118, 83, 105, 72,
  25. 78, 94, 88]])
  26. #级联需要注意的点:
  27. 级联的参数是列表:一定要加中括号或小括号
  28. 维度必须相同
  29. 形状相符:在维度保持一致的前提下,如果进行横向(axis=1)级联,必须保证进行级联的数组行数保持一致。如果进行纵向(axis=0)级联,
  30. 必须保证进行级联的数组列数保持一致。
  31. 可通过axis参数改变级联的方向

ndarray的聚合操作

  1. #求和np.sum
  2. arr.sum(axis=None)
  3. #执行结果
  4. 4374
  5. #最大最小值:np.max/ np.min
  6. #平均值:np.mean()
  7. Function Name NaN-safe Version Description
  8. np.sum np.nansum Compute sum of elements
  9. np.prod np.nanprod Compute product of elements
  10. np.mean np.nanmean Compute mean of elements
  11. np.std np.nanstd Compute standard deviation
  12. np.var np.nanvar Compute variance
  13. np.min np.nanmin Find minimum value
  14. np.max np.nanmax Find maximum value
  15. np.argmin np.nanargmin Find index of minimum value
  16. np.argmax np.nanargmax Find index of maximum value
  17. np.median np.nanmedian Compute median of elements
  18. np.percentile np.nanpercentile Compute rank-based statistics of elements
  19. np.any N/A Evaluate whether any elements are true
  20. np.all N/A Evaluate whether all elements are true
  21. np.power 幂运算

ndarray的排序

  1. np.sort()与ndarray.sort()都可以,但有区别:
  2. - np.sort()不改变输入
  3. - ndarray.sort()本地处理,不占用空间,但改变输入
  4. #准备数据
  5. import numpy as np
  6. arr = np.random.randint(60,120,size=(6,8))
  7. arr
  8. array([[101, 67, 88, 94, 75, 82, 105, 96],
  9. [100, 86, 112, 69, 79, 100, 65, 114],
  10. [ 72, 86, 95, 84, 112, 94, 103, 115],
  11. [ 83, 110, 78, 60, 67, 86, 113, 92],
  12. [ 74, 118, 79, 86, 63, 97, 81, 106],
  13. [112, 118, 83, 105, 72, 78, 94, 88]])
  14. arr.sort(axis=0)#会作业到原始数据中 axis=0对每一列做排序
  15. arr
  16. #执行结果
  17. array([[ 72, 67, 78, 60, 63, 78, 65, 88],
  18. [ 74, 86, 79, 69, 67, 82, 81, 92],
  19. [ 83, 86, 83, 84, 72, 86, 94, 96],
  20. [100, 110, 88, 86, 75, 94, 103, 106],
  21. [101, 118, 95, 94, 79, 97, 105, 114],
  22. [112, 118, 112, 105, 112, 100, 113, 115]])
  23. arr.sort(axis=1)#会作业到原始数据中 axis=0对每一行做排序
  24. arr
  25. #执行结果
  26. array([[ 60, 63, 65, 67, 72, 78, 78, 88],
  27. [ 67, 69, 74, 79, 81, 82, 86, 92],
  28. [ 72, 83, 83, 84, 86, 86, 94, 96],
  29. [ 75, 86, 88, 94, 100, 103, 106, 110],
  30. [ 79, 94, 95, 97, 101, 105, 114, 118],
  31. [100, 105, 112, 112, 112, 113, 115, 118]])

简单使用matplotlib.pyplot获取一个numpy数组,对其进行操作

  • 准备

  • 获取一个numpy数组,简单操作查看,展示图片

  1. # 使用matplotlib.pyplot获取一个numpy数组,数据来源于一张图片
  2. import matplotlib.pyplot as plt
  3. img_arr = plt.imread('./part_1/cat.jpg')
  4. img_arr.shape#数组形状
  5. #执行结果
  6. (456,730,3) #行,列,颜色,总个数是维度
  7. img_arr.size#数组大小
  8. #执行结果
  9. 998640 #多少元素
  10. img_arr.dtype#数组类型
  11. #执行结果
  12. dtype('uint8')#数组类型, uint88位无符号整型
  13. img_arr#查看数组
  14. #执行结果 三位数组231, 186, 131前两位数是像素点,后一位是颜色
  15. array([[[231, 186, 131],
  16. [232, 187, 132],
  17. [233, 188, 133],
  18. ...,
  19. [100, 54, 54],
  20. [ 92, 48, 47],
  21. [ 85, 43, 44]],
  22. [[232, 187, 132],
  23. [232, 187, 132],
  24. [233, 188, 133],
  25. ...,
  26. [100, 54, 54],
  27. [ 92, 48, 47],
  28. [ 84, 42, 43]],
  29. #中间省略...
  30. ...,
  31. [188, 98, 64],
  32. [188, 95, 62],
  33. [188, 95, 62]]], dtype=uint8)
  34. plt.imshow(img_arr)#展示图片
  35. #执行结果 如下图

  • 数组减去某个值,图片发生变化

  1. import matplotlib.pyplot as plt
  2. img_arr = plt.imread('./part_1/cat.jpg')
  3. img_arr.ndim #当前数组维度
  4. #执行结果
  5. 3
  6. img_arr-100
  7. #执行结果
  8. array([[[131, 86, 31],
  9. [132, 87, 32],
  10. [133, 88, 33],
  11. ...,
  12. [ 0, 210, 210],
  13. [248, 204, 203],
  14. [241, 199, 200]],
  15. [[132, 87, 32],
  16. [132, 87, 32],
  17. [133, 88, 33],
  18. ...,
  19. [ 0, 210, 210],
  20. [248, 204, 203],
  21. [240, 198, 199]],
  22. #中间省略...
  23. ...,
  24. [ 88, 254, 220],
  25. [ 88, 251, 218],
  26. [ 88, 251, 218]]], dtype=uint8)
  27. plt.imshow(img_arr - 100)
  28. plt.savefig('./mao.jpg') #保存图片
  29. #执行结果 如下图

  • 将图片进行对称反转操作

  1. import matplotlib.pyplot as plt
  2. img_arr = plt.imread('./part_1/bcy.jpg')
  3. plt.imshow(img_arr[:,::-1,:])
  4. #执行结果如 下图

  • 将图片倒置

  1. plt.imshow(img_arr[::-1,:])
  2. #执行结果如 下图

  • 将图片对称反转并倒置

  1. plt.imshow(img_arr[::-1,::-1])
  2. #执行结果如 下图

  • 将图片对称反转并倒置并修改颜色

  1. plt.imshow(img_arr[::-1,::-1,::-1])
  2. #执行结果如 下图

  • 对原图做剪裁

  1. plt.imshow(img_arr[450:600,95:330])
  2. #执行结果如 下图

  • 对图片进行拼接

  1. arr_3 = np.concatenate((img_arr,img_arr,img_arr),axis=1)
  2. plt.imshow(arr_3)
  3. #执行结果如 下图

  1. arr_3 = np.concatenate((img_arr,img_arr,img_arr),axis=1)#axis=1 轴向
  2. arr_9 = np.concatenate((arr_3,arr_3,arr_3),axis=0)#axis=0 轴向
  3. plt.imshow(arr_9)
  4. #执行结果如 下图

学习网站

作 者:郭楷丰
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角 推荐一下。您的鼓励是博主的最大动力!
自 勉:生活,需要追求;梦想,需要坚持;生命,需要珍惜;但人生的路上,更需要坚强。带着感恩的心启程,学会爱,爱父母,爱自己,爱朋友,爱他人。

数据分析 之 NumPy的更多相关文章

  1. 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片

    概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...

  2. 数据分析入门——numpy类库基础知识

    numpy类库是数据分析的利器,用于高性能的科学计算和数据分析.使用python进行数据分析,numpy这个类库是必须掌握的.numpy并没有提供强大的数据分析功能,而是它提供的ndarray数据结构 ...

  3. 数据分析01 /numpy模块

    数据分析01 /数据分析之numpy模块 目录 数据分析01 /数据分析之numpy模块 1. numpy简介 2. numpy的创建 3. numpy的方法 4. numpy的常用属性 5. num ...

  4. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

  5. 数据分析之Numpy基础:数组和适量计算

    Numpy(Numerical Python)是高性能科学计算和数据分析的基础包. 1.Numpy的ndarray:一种多维数组对象 对于每个数组而言,都有shape和dtype这两个属性来获取数组的 ...

  6. Python数据分析之numpy学习

    Python模块中的numpy,这是一个处理数组的强大模块,而该模块也是其他数据分析模块(如pandas和scipy)的核心. 接下面将从这5个方面来介绍numpy模块的内容: 1)数组的创建 2)有 ...

  7. 《利用python进行数据分析》NumPy基础:数组和矢量计算 学习笔记

    一.有关NumPy (一)官方解释 NumPy is the fundamental package for scientific computing with Python. It contains ...

  8. Python数据分析(二): Numpy技巧 (1/4)

    In [1]: import numpy numpy.__version__ Out[1]: '1.13.1' In [2]: import numpy as np  

  9. Python数据分析(二): Numpy技巧 (2/4)

    numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性.   昨天晚上发了第一 ...

随机推荐

  1. 【深入学习linux】Xshell的安装和使用

    桥接模式下,连接xshell教程 centOS7  的ifcfg-ens33   跟刚才记录的一样 第一步:进入终端 /etc/sysconfig/network-scripts/目录 第二步:修改i ...

  2. 蓝牙BLE: 蓝牙(BLE)协议栈

    蓝牙协议是通信协议的一种,一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提.当前的蓝 ...

  3. java多线程(二)线程的生命周期

    1.   线程生命周期 新建(New).就绪(Runnable).运行(Running).阻塞(Blocked)和死亡(Dead)5种状态. 1.1. 新建 l  new关键字创建了一个线程之后,该线 ...

  4. zookeeper+Dubbo环境搭建及简单Demo

    1 安装zk https://www.cnblogs.com/feifeicui/p/11175502.html 2 安装 dubbo-admin https://www.cnblogs.com/fe ...

  5. Ubuntu 安装docker CE以及harbor

    Docker CE安装 系统建议版本:Ubuntu 16.04 官方安装文档连接:https://docs.docker.com/install/linux/docker-ce/ubuntu/#pre ...

  6. Elasticsearch学习之集群常见状况处理(干货)

    1. 集群健康状况处理 当集群处于yellow或者red状态的时候,整体处理步骤如下: (1) 首先查看集群状态 localhost:/_cluster/health?pretty { "c ...

  7. EasyNVR摄像机网页无插件直播方案H5前端构建之:通道内部搜索功能的实现方案与代码

    EasyNVR网页摄像机直播方案 EasyNVR是一款拥有完整.自主.可控知识产权,同时又能够具备软硬一体功能的安防互联网化流媒体服务器,能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络 ...

  8. Javacript Remove Elements from Array

    參考自: https://love2dev.com/blog/javascript-remove-from-array/ 1. Removing Elements from End of Array ...

  9. 【转】pdf文件自动切白边

    pdf文件自动剪裁(自动切白边) FROM:http://www.ai7.org/wp/html/754.html 可能用到的环境.工具:Ubuntu 10.04+TeXLive 2008+pdfcr ...

  10. aspnetcore identity result.Succeeded SignInManager.IsSignedIn(User) false?

    登陆返回的是 result.Succeeded 为什么跳转到其他页面SignInManager.IsSignedIn(User)为false呢? result.Succeeded _signInMan ...