NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库!

Numpy简单创建数组

  1. nlist = np.array([1,2,3])
    print(nlist)
  2. #[1 2 3]

Numpy查看数组属性

  1. #ndim方法用来查看数组维度
  2. print(nlist.ndim) #
  3.  
  4. #二维数组
  5. nlist_2 = np.array([[1,2,3],[4,5,6]])
  6. print(nlist_2)
  7. print(nlist_2.ndim)
  8.  
  9. #[[1 2 3]
  10. # [4 5 6]]
  11. #
  12.  
  13. #使用shape属性来大印多维数组的形状
  14. print(nlist.shape,nlist_2.shape)
  15. #(3,) (2, 3)
  16.  
  17. #使用size方法来打印多维数组的元素个数
  18. print(np.size(nlist))
  19. print(np.size(nlist_2))
  20. #
  21. #
  22.  
  23. #打印numpy多维数组的数据类型
  24. print(type(nlist))
  25. #<class 'numpy.ndarray'>
  26.  
  27. #使用dtype属性打印多维数组内部元素的数据类型
  28. print(nlist.dtype)
  29. #itemsizes属性,多维数组中的数据类型大小,字节
  30. print(nlist.itemsize)
  31. #data属性 打印数据缓冲区 buffer
  32. print(nlist.data)
  33. # int32
  34. #
  35. # <memory at 0x0000023047DB5C48>

快速创建N维数组的api函数

  1. #使用ones方法,自动生成元素为1的多维数组
  2. nlist_ones = np.ones((4,4))
  3. print(nlist_ones)
  4. print(nlist_ones.dtype)
  5.  
  6. #[[1. 1. 1. 1.]
  7. # [1. 1. 1. 1.]
  8. # [1. 1. 1. 1.]
  9. # [1. 1. 1. 1.]]
  10. #float64
  11.  
  12. #zeros
  13. nlist_zeros = np.zeros((4,4))
  14. print(nlist_zeros)
  15. #[[0. 0. 0. 0.]
  16. # [0. 0. 0. 0.]
  17. # [0. 0. 0. 0.]
  18. # [0. 0. 0. 0.]]
  19.  
  20. #使用empty方法来生成随机多维数组,使用第二参数指定数据类型
  nlistempty = np.empty([2,2])
 nlist_empty = np.empty([2,2],dtype=np.int)
  1. print(nlistempty)
 print(nlist_empty)
  1. #[[5.e-324 5.e-324]
  2. # [0.e+000 0.e+000]]
  3. #[[0 0]
  4. # [0 0]]
使用reshape方法来反向生成多维数组

  1. nlist_3 = np.array(range(24)).reshape((3,2,4))
  2. print(nlist_3)
  3. print(nlist_3.shape)
  4. nlist_float = np.array([1.0,2.0])
  5. print(nlist_float.dtype)
  6. #使用字符串
  7. nlist_string=np.array(['','',''])
  8. print(nlist_string.dtype)
  9.  
  10. #[[[ 0 1 2 3]
  11. # [ 4 5 6 7]]
  12. #
  13. # [[ 8 9 10 11]
  14. # [12 13 14 15]]
  15. #
  16. # [[16 17 18 19]
  17. # [20 21 22 23]]]
  18. #(3, 2, 4)
  19. #float64
  20. #<U1
把普通list转换为数组
  1. x = [1,2,3]
  2. x = [(1,2,3),(4,5)]
  3. nlist = np.asarray(x)
  4. print(nlist)
  5.  
  6. #[(1, 2, 3) (4, 5)]
frombuffer 通过字符串(buffer内存地址)切片来生成多维数组

  1. my_str = b"hello world"
  2. nlist_str = np.frombuffer(my_str,dtype='S1')
  3. print(nlist_str)
  4.  
  5. #[b'h' b'e' b'l' b'l' b'o' b' ' b'w' b'o' b'r' b'l' b'd']
axis 属性可以指定当前多维数组的维度(0表示行,1表示列 keepdims表示结构)
  1. sum0 = np.sum(x,axis=0,keepdims=False)
  2. print(sum0)
  3. sum1 = np.sum(x,axis=1,keepdims=1)
  4. sum = np.sum(x,axis=1,keepdims=0)
  5. print(sum1,sum)
  6.  
  7. #[4 6]
  8. #[[3]
  9. # [7]]
  10. #[3 7]
维度级的运算

  1. a = np.array([[1,2],[3,4],[5,6]])
  2. b = np.array([[10,20],[30,40],[50,60]])
  3.  
  4. #vstack方法
  5. suma = np.vstack((a,b))
  6. print(suma)
  7. print("-"*30)
  8. #hstack方法
  9. sumb = np.hstack((a,b))
  10. print(sumb)
  11.  
  12. #[[ 1 2]
  13. #[ 3 4]
  14. # [ 5 6]
  15. # [10 20]
  16. # [30 40]
  17. # [50 60]]
  18. ------------------------------
  19. #[[ 1 2 10 20]
  20. # [ 3 4 30 40]
  21. # [ 5 6 50 60]]
多维数组的调用
  1. nlist=np.array([[1,2],[3,4],[5,6]])
  2. print(nlist[1][1])
  3. print(nlist[1,1])
  4. #删除方法 delete
  5. #s删除nlist第二行
  6. print(np.delete(nlist,1,axis=0))
  7. print(np.delete(nlist,0,axis=1))
  8.  
  9. #
  10. #
  11. #[[1 2]
  12. # [5 6]]
  13. #[[2]
  14. # [4]
  15. # [6]]

**未完待续

Numpy 机器学习三剑客之Numpy的更多相关文章

  1. Python:机器学习三剑客之 NumPy

    一.numpy简介 Numpy是高性能科学计算和数据分析的基础包,机器学习三剑客之一.Numpy库中最核心的部分是ndarray 对象,它封装了同构数据类型的n维数组.部分功能如下: ndarray, ...

  2. 机器学习三剑客之Numpy库基本操作

    NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机 ...

  3. 机器学习三剑客之Numpy

      Numpy NumPy是Python语言的一个扩充程序库.支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.Numpy内部解除了Python的PIL(全局解释器锁),运算效 ...

  4. 机器学习 三剑客 之 pandas + numpy

    机器学习 什么是机器学习? 机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测 机器学习存在的目的和价值领域? 领域: 医疗.航空.教育.物流.电商 等... 目的: 让机器学习 ...

  5. 数据分析三剑客之numpy

    Numpy 简介 数据分析三剑客:Numpy,Pandas,Matplotlib NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算, ...

  6. python数据分析三剑客之: Numpy

    数据分析三剑客之: Numpy 一丶Numpy的使用 ​ numpy 是Python语言的一个扩展程序库,支持大维度的数组和矩阵运算.也支持针对数组运算提供大量的数学函数库 创建ndarray # 1 ...

  7. 机器学习之路--Numpy

    常用代码 ndarray.dtype 数据类型必须是一样的 常用代码 import numpy #numpy读取文件 world_alcohol = numpy.genfromtxt("wo ...

  8. 【numpy】新版本中numpy(numpy>1.17.0)中的random模块

    numpy是Python中经常要使用的一个库,而其中的random模块经常用来生成一些数组,本文接下来将介绍numpy中random模块的一些使用方法. 首先查看numpy的版本: import nu ...

  9. 《机器学习实战》---NumPy

    NumPy库函数基础: 机器学习算法涉及很多线性代数知识. NumPy库中有很多线性代数计算. 之所以用到线性代数只是为了简化不同的数据点上执行的相同数学运算.将数据表示为矩阵形式, 只需要执行简单的 ...

随机推荐

  1. MXNET:分类模型

    线性回归模型适用于输出为连续值的情景,例如输出为房价.在其他情景中,模型输出还可以是一个离散值,例如图片类别.对于这样的分类问题,我们可以使用分类模型,例如softmax回归. 为了便于讨论,让我们假 ...

  2. Java知多少(76)语言包(java.lang)简介

    Java语言包(java.lang)定义了Java中的大多数基本类,由Java语言自动调用,不需要显示声明.该包中包含了Object类,Object类是整个类层次结构的根结点,同时还定义了基本数据类型 ...

  3. CentOS命令介绍综合

    1,显示当前使用的shell [root@localhost ~]# echo $SHELL2,显示当前系统使用的所有shell [root@localhost ~]# cat /etc/shells ...

  4. java主线程等待所有子线程执行完毕在执行(常见面试题)

    java主线程等待所有子线程执行完毕在执行(常见面试题) java主线程等待所有子线程执行完毕在执行,这个需求其实我们在工作中经常会用到,比如用户下单一个产品,后台会做一系列的处理,为了提高效率,每个 ...

  5. linux mysql卸载

    卸载mysql 1.查找以前是否装有mysql 命令:rpm -qa|grep -i mysql 可以看到mysql的包: mysql-libs-5.1.71-1.el6.x86_64 2.删除mys ...

  6. @ResponseBody的作用

    由于之前一直用struts2,对springMvc的注解并不太了解.新公司的项目用的是springMvc+hibernate,看到了@ResponseBody注解 @ResponseBody作用类似于 ...

  7. PHP实现敏感词过滤系统

    PHP实现敏感词过滤系统 安装说明 安装PHP扩展 trie_filter,安装教程 http://blog.41ms.com/post/39.html 安装PHP扩展 swoole,安装教程 htt ...

  8. 浅谈webpack4.0 性能优化(转)

    前言:在现实项目中,我们可能很少需要从头开始去配置一个webpack 项目,特别是webpack4.0发布以后,零配置启动一个项目成为一种标配.正因为零配置的webpack对项目本身提供的“打包”和“ ...

  9. 关于vb代码复制到其他地方出现乱码的问题

    今天笔者在学习vb编程时,想将自己的一段测试代码记录到云笔记中,方便以后查阅,代码如下: 结果在复制到其他的地方的时候,均出现乱码的现象,主要是针对代码的中的中文,如下效果 Private Sub C ...

  10. 【CF679D】Bear and Chase 最短路+乱搞

    [CF679D]Bear and Chase 题意:近日,鼠国的头号通缉犯,神出鬼没的怪盗——Joker正于摩登市出没!对于名侦探Jack来说,这正是将其捉拿归案的大号时机.形式化地,摩登市可以看成一 ...