经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python3 » 查看文章
Python3.5基础之NumPy模块的使用图文与实例详解
来源:jb51  时间:2019/4/24 12:31:26  对本文有异议

本文实例讲述了Python3.5基础之NumPy模块的使用。分享给大家供大家参考,具体如下:

1、简介





2、多维数组——ndarray















  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author:ZhengzhengLiu
  4.  
  5. import numpy as np
  6.  
  7. #1.创建ndarray
  8. #创建一维数组
  9. n1 = np.array([1,2,3,4])
  10. print(n1)
  11.  
  12. #属性--ndim:维度;dtype:元素类型;shape:数组形状;
  13. # size:数组元素总个数,shape值相乘得到
  14. print("n1维度:",n1.ndim)
  15. print("n1元素类型:",n1.dtype)
  16. print("n1数组形状:",n1.shape)
  17. print("n1数组元素总个数:",n1.size)
  18.  
  19. #创建二维数组
  20. n2 = np.array([
  21. [1,2,3,4],
  22. [5,6,7,8]
  23. ])
  24.  
  25. print(n2)
  26. print("n2维度:",n2.ndim)
  27. print("n2元素类型:",n2.dtype)
  28.  
  29. #创建三维数组
  30. n3 = np.array([
  31. [
  32. [1,2,3,4],
  33. [5,6,7,8]
  34. ],
  35. [
  36. [10,20,30,40],
  37. [50,60,70,80]
  38. ]
  39. ])
  40.  
  41. print(n3)
  42. print("n3数组形状:",n3.shape)
  43. print("n3数组元素总个数:",n3.size)
  44.  
  45. #2.通过函数创建数组
  46. z = np.zeros((3,2)) #创建指定形状的数组,数值由零填充
  47. print(z)
  48. print(z.dtype)
  49.  
  50. o = np.ones((2,4)) #创建指定形状的数组,数值由1填充
  51. print(o)
  52.  
  53. e = np.empty((2,3,2)) #创建指定形状的数组,数值由未初始化的垃圾值填充
  54. print(e)
  55.  
  56. #3.通过函数计算的方式去创建数组
  57. #一个参数,区间左闭右开,默认起始值为0,步长为1
  58. np1 = np.arange(10)
  59. print(np1)
  60.  
  61. #两个参数(起始值,终止值),区间左闭右开,默认步长为1
  62. np2 = np.arange(2,10)
  63. print(np2)
  64.  
  65. #三个参数(起始值,终止值,步长),区间左闭右开,步长为2
  66. np3 = np.arange(2,10,2)
  67. print(np3)
  68.  
  69. #倒序创建数组元素
  70. np4 = np.arange(10,2,-1)
  71. print(np4)
  72.  
  73. #全闭区间,参数(起始值,终止值,元素个数),等差数列
  74. np5 = np.linspace(0,10,5)
  75. print(np5)
  76.  
  77. #全闭区间,以10为底数参数为指数(起始值,终止值,元素个数),等比数列
  78. np6 = np.logspace(0,2,5)
  79. print(np6)
  80.  
  81. #生成随机数的数组
  82. np7 = np.random.random((2,3))
  83. print(np7)

运行结果:

[1 2 3 4]
n1维度: 1
n1元素类型: int32
n1数组形状: (4,)
n1数组元素总个数: 4
[[1 2 3 4]
 [5 6 7 8]]
n2维度: 2
n2元素类型: int32
[[[ 1  2  3  4]
  [ 5  6  7  8]]

 [[10 20 30 40]
  [50 60 70 80]]]
n3数组形状: (2, 2, 4)
n3数组元素总个数: 16
[[ 0.  0.]
 [ 0.  0.]
 [ 0.  0.]]
float64
[[ 1.  1.  1.  1.]
 [ 1.  1.  1.  1.]]
[[[  1.02548961e-305   5.40165714e-067]
  [  1.05952696e-153   9.69380992e+141]
  [  2.17151199e+214   4.34975848e-114]]

 [[  2.08064175e-115   1.91431714e+227]
  [  6.42897811e-109   1.26088822e+232]
  [  9.51634286e-114   5.45764552e-306]]]
[0 1 2 3 4 5 6 7 8 9]
[2 3 4 5 6 7 8 9]
[2 4 6 8]
[10  9  8  7  6  5  4  3]
[  0.    2.5   5.    7.5  10. ]
[   1.            3.16227766   10.           31.6227766   100.        ]
[[ 0.55980469  0.99477652  0.82310732]
 [ 0.97239333  0.1409895   0.57213264]]

  1. #修改ndarray形状
  2. np8 = np.arange(0,20,2)
  3. print(np8)
  4. print(np8.size)
  5.  
  6. np9 = np8.reshape(2,5)
  7. print(np9)
  8. print(np9.size)
  9.  
  10. #reshape函数是对被修改数组的一个拷贝,共享同一内存,
  11. # 修改其中一个数组会影响里一个
  12. np9[1][2] = 50
  13. print(np8)
  14. print(np9)
  15.  
  16. # -1表示第二维自动根据元素个数计算
  17. np10 = np8.reshape(5,-1)
  18. print(np10)
  19.  
  20. #shape直接修改原来数组的形状
  21. np8.shape=(2,-1)
  22. print(np8)

运行结果:

[ 0  2  4  6  8 10 12 14 16 18]
10
[[ 0  2  4  6  8]
 [10 12 14 16 18]]
10
[ 0  2  4  6  8 10 12 50 16 18]
[[ 0  2  4  6  8]
 [10 12 50 16 18]]
[[ 0  2]
 [ 4  6]
 [ 8 10]
 [12 50]
 [16 18]]
[[ 0  2  4  6  8]
 [10 12 50 16 18]]

Numpy基本操作说明










更多关于Python相关内容感兴趣的读者可查看jb51专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号