numpy 库简单使用

一、numpy库简介

  Python标准库中提供了一个array类型,用于保存数组类型的数据,然而这个类型不支持多维数据,不适合数值运算。作为Python的第三方库numpy便有了用武之地。

  numpy库处理的最基础数据类型是用同种元素构成的多维数组(ndarray),简称数组。数组中所有元素的类型必须相同,数组中元素可以用整数索引,序号从0开始。ndarray类型的维度叫作轴(axes),轴的个数叫做秩(rank)。

二、numpy库下载

  1. pip install numpy

三、导入库函数

  1. import numpy as np

四、库函数基本使用

1. 创建数组的函数 (ndarray类型)

函数

说明

np.array([ x, y, z], dtype = int)

从列表或数组中创建数组

np.arange(x, y, i)

创建一个由x到y,以i为步长的数组

np.linspace(x, y, n)

创建一个由x到y,等分成n个元素的数组

np.indices((m, n))

创建一个m行n列的矩阵(3维数组)

np.random.rand(m, n)

创建一个m行n列的随机数组

np.ones((m,n), dtype)

创建一个m行n列的全1数组,dtype为数据类型

np.zeros((m,n), dtype)

创建一个m行n列的全0数组,dtype为数据类型

np.empty((m,n), dtype)

创建一个m行n列的空数组,dtype为数据类型

  1. import numpy as np
  2.  
  3. ''' numpy --> array() '''
  4. a1 = np.array([1,2,3,5,8,13,21,34,55,89], dtype = int) # 由列表创建数组
  5. array_ = (2.3,8,10/3,5.0,1/7) # 创建元组
  6. a2 = np.array(array_) # 由元组创建数组
  7. print('numpy --> array():\n',a1,'\n',a2)
  8.  
  9. ''' numpy --> arange() '''
  10. arange_1 = np.arange(1,30,4)
  11. arange_2 = np.arange(1,3,0.4)
  12. print('numpy --> arange():\n',arange_1,'\n',arange_2)
  13.  
  14. ''' numpy --> linspace() '''
  15. lins_1 = np.linspace(1,10,10)
  16. lins_2 = np.linspace(1,10,9, dtype = int)
  17. print('numpy --> linspace():\n',lins_1,'\n',lins_2)
  18.  
  19. ''' numpy --> random.rand() '''
  20. rand_ = np.random.rand(3,4)
  21. print('numpy --> random.rand():\n',rand_)
  22.  
  23. ''' numpy --> ones() '''
  24. ones_1 = np.ones((3,4)) # 默认为float
  25. ones_2 = np.ones((3,4),dtype = int)
  26. print('numpy --> ones():\n',ones_1,'\n',ones_2)
  27.  
  28. ''' numpy --> zeros() '''
  29. zeros_1 = np.zeros((2,3))
  30. zeros_2 = np.zeros((2,3), dtype = int)
  31. print('numpy --> zeros():\n',zeros_1,'\n',zeros_2)

2. ndarray类型的常用属性

属性

说明

ndarray.ndim

返回数组轴的个数,即数组的秩

ndarray.shape

返回数组在每个维度上大小的整数元组

ndarray.size

返回数组元素的总个数

ndarray.dtype

返回数组元素的数据类型

ndarray.itemsize

返回数组元素的字节大小

ndarray.data

返回数组元素的缓存区地址

ndarray.flat

数组元素的迭代器

  1. import numpy as np
  2. a = np.indices((5,8)) # 创建一个m行n列的矩阵
  3. print("数组a的秩:",a.ndim)
  4. print("数组a各维度的大小:",a.shape)
  5. print("数组a元素的总个数:",a.size)
  6. print("数组a元素的数据类型:",a.dtype)
  7. print("数组a元素的字节大小:",a.itemsize)
  8. print("数组a元素的缓存区地址:",a.data)
  9. print("数组a元素的迭代器:",a.flat)
  10. print("数组a的元素:\n",a)

3. ndarray类型的形态操作方法

操作方法

说明

ndarray.reshape(n, m)

返回一个维度为(n, m)的数组副本

ndarray.resize(new_shape)

修改数组的维度大小

ndarray.swapaxes(ax1, ax2)

调换数组ax1维度与ax2维度,返回调换后的数组

ndarray.flatten()

对数组进行降维,返回一维数组

ndarray.ravel()

对数组进行降维,返回数组的一个视图

  1. import numpy as np
  2. a = np.arange(20)
  3. print('(1) 创建一维数组a:\n',a)
  4. b = a.reshape(2,10)
  5. print('(2) 由a创建(2,10)的数组b:\n',b)
  6. a.resize(4,5)
  7. print('(3) 修改数组a为(4,5):','Shape of a:',a.shape,'\n',a)
  8. c = a.swapaxes(0,1)
  9. print('(4) 调换数组a第1维度与第2维度得到数组c:(5,4)','Shape of c:',c.shape,'\n',c)
  10. d = a.flatten()
  11. print('(5) 对数组a降维,得到一维数组d:','Shape of d:',d.shape,'\n',d)
  12. e = a.ravel()
  13. print('(6) 对数组a降维,得到数组a的视图e','Shape of e:',e.shape,'\n',e)

4. ndarray类型的索引与切片方法

方法

说明

x [i]

索引数组x的第i个元素

x [-i]

从后往前索引数组x的第i个元素

x [n : m]

从前往后索引数组x,不包含第m个元素

x [-m : -n]

从后往前索引数组x,结束位置为n

x [n : m: i]

以i为步长索引数组x

  1. import numpy as np
  2. a = np.arange(8)
  3. print('a:',a)
  4. print('a[4]:',a[4])
  5. print('a[-6:-3]:',a[-6:-3])
  6. print('a[1:6:2]:',a[1:6:2])

5. ndarray类型的算术运算函数

函数

说明

np.add(x1, x2 [,y])

y = x1 + x2

np.subtract(x1, x2 [,y])

y = x1 - x2

np.multiply(x1, x2 [,y])

y = x1 * x2

np.divide(x1, x2 [,y])

y = x1 / x2

np.floor_divide(x1, x2 [,y])

y = x1 // x2

np.negative(x [,y])

y = -x

np.power(x1, x2 [,y])

y = x1 ** x2

np.remainder(x1, x2 [,y])

y = x1 % x2

  1. import numpy as np
  2. A1 = np.arange(1,9)
  3. A2 = np.arange(1,30,4)
  4.  
  5. print('A1:',A1)
  6. print('A2:',A2)
  7. print('A2-A1:',np.subtract(A2,A1))
  8. print('A2//A1:',np.floor_divide(A2,A1))
  9. print('A2%A1:',np.remainder(A2,A1))

6. ndarray类型的比较运算函数

函数

说明

np.equal(x1, x2 [,y])

y = x1 == x2

np.not_equal(x1, x2 [,y])

y = x1 != x2

np.less(x1, x2 [,y])

y = x1 < x2

np.less_equal(x1, x2 [,y])

y = x1 <= x2

np.greater(x1, x2 [,y])

y = x1 > x2

np.greater_equal(x1, x2 [,y])

y = x1 >= x2

np.where(condition [x, y])

根据条件判断输出x或y

  1. import numpy as np
  2. A1 = np.arange(1,9)
  3. A2 = np.arange(1,30,4)
  4.  
  5. print('A1:',A1)
  6. print('A2:',A2)
  7. print('A1 != A2:',np.not_equal(A1,A2))
  8. print('A1 <= A2:',np.less_equal(A1,A2))
  9. print('Use of where_1:',np.where(A1>=5,'Y','N'))
  10. print('Usage as much of where:{}'.format('Y' if A1[3]>=5 else 'N'))

7. ndarray类型的其他运算函数

函数

说明

np.abs(x)

返回数组x每个元素的绝对值

np.sqrt(x)

返回数组x每个元素的平方根

np.square(x)

返回数组x每个元素的平方

np.sign(x)

返回数组x每个元素的符号:1(+)、0、-1(-)

np.ceil(x)

返回大于或等于数组x每个元素的最小值

np.floor(x)

返回小于或等于数组x每个元素的最大值

np.rint(x [,out])

返回数组x每个元素最接近的整数

np.exp(x [,out])

返回数组x每个元素的指数值

np.log(x) / np.log2(x) / np.log10(x)

返回数组x每个元素相应的对数(e、2、10)

  1. import numpy as np
  2. A1 = np.arange(1,9)
  3. A2 = np.arange(1,30,4)
  4.  
  5. print('A1:',A1)
  6. print('A2:',A2)
  7. print('A2的平方根:',np.sqrt(A2))
  8. print('A1的平方:',np.sqrt(A1))
  9. print('A2 2的对数:',np.log2(A2))

  注:numpy库还包括三角运算函数、傅立叶变换、随机和概率分布、基本数值统计、位运算、矩阵运算等功能,具体可到官网查询。

numpy 库简单使用的更多相关文章

  1. numpy库简单使用

    numpy简介 NumPy(Numerical Python)是python语言的一个扩展程序库,支持大量维度数组与矩阵运算,此外,也针对数据运算提供大量的数学函数库. NumPy是高性能科学计算和数 ...

  2. numpy 库使用

    numpy 库简单使用 一.numpy库简介 Python标准库中提供了一个array类型,用于保存数组类型的数据,然而这个类型不支持多维数据,不适合数值运算.作为Python的第三方库numpy便有 ...

  3. 简单记录numpy库的某些基本功能

    这里介绍python的一个库,numpy库,这个库是机器学习,数据分析最经常用到的库之一,也是利用python做数据必须用到的一个库,入门机器学习学的第一个python库就是它了. 先对其导入到pyt ...

  4. numpy库:常用基本

    numpy 本文主要列出numpy模块常用方法 大部分内容来源于网络,而后经过自己的一点思考和总结,如果有侵权,请联系我 我是一名初学者,有哪些地方有错误请留言,我会及时更改的 创建矩阵(采用ndar ...

  5. 初识NumPy库-基本操作

    ndarray(N-dimensional array)对象是整个numpy库的基础. 它有以下特点: 同质:数组元素的类型和大小相同 定量:数组元素数量是确定的 一.创建简单的数组: np.arra ...

  6. Numpy库(个人学习笔记)

    一样,咱的计算机还是得先拥有Python,并且安装了Numpy库.有疑问的话可以看这里呦~~~~ 下面开讲: NumPy的主要对象是齐次多维数组.它是一个元素表(通常是数字),并且都是相同类型,由正整 ...

  7. Numpy库的下载及安装(吐血总结)

    Python很火,我也下了个来耍耍一阵子.可是渐渐地,我已经不满足于它的基本库了,我把目光转到了Numpy~~~~~ 然而想法总是比现实容易,因为我之前下的是Python3.3.x,所有没有自带pip ...

  8. Numpy库的学习(五)

    今天继续学习一下Numpy库,废话不多说,整起走 先说下Numpy中,经常会犯错的地方,就是数据的复制 这个问题不仅仅是在numpy中有,其他地方也同样会出现 import numpy as np a ...

  9. Numpy库的学习(一)

    今天来学习一下Python库中,支持高级大量的维度数组与矩阵运算的神奇的Numpy库 Numpy同时也对数组运算提供大量的数学函数,对于大量计算运行效率极好 是大量机器学习框架的基础库 废话不多说,直 ...

随机推荐

  1. linux 安装 mysql

    二进制安装mysql 1,下载安装包,使用国内站点速度会比较快,如清华站点https://mirrors.tuna.tsinghua.edu.cn 登陆linux系统后,使用wget 进行下载mysq ...

  2. ucos中消息队列的应用(二)

    继续说任务间的通信. 本次的任务是在ISR中发送一个消息给任务,ucos的代码中的是非常之简洁和容易理解啊.创建,释放,等待,非常好理解,不再赘述. 说说我遇到的问题,数据帧接收完之后,向消息队列发送 ...

  3. 一段自适应的CSS代码

    一段自适应HTML5的CSS代码,该代码在陕西特产使用过,手机端效果还好,就是PC端看起来没那么大气,比较窄屏 * { transition-property: all; -ms-transition ...

  4. 批量替换表中某字段的“\t”

    update dbo.Hishop_Products set [Description]=replace(cast([Description] as varchar(8000)),' ',' ')

  5. lambda练习题

    3.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb name=['alex','wupeiqi','yuanhao','nezha'] # def func(item): # ...

  6. 《Java从入门到精通》学习总结1

    1. Java既是编译型语音,也是解释型语言:先将源代码编译成Java字节码,然后Java虚拟机对Java字节码进行解释运行 2. 使用命令行编译Java源代码时,如果代码中有中文,在编译时需要指定编 ...

  7. vue-cli 2.x脚手架build目录中的webpack.base.conf.js配置文件

    此文章用来解释vue-cli脚手架build目录中的webpack.base.conf.js配置文件,适用于vue-cli 2.x版本 此配置文件是vue开发环境的wepack相关配置文件,主要用来处 ...

  8. todolist---插入和删除----vue

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 1004: [HNOI2008]Cards - burnside + DP

    Description 小春现在很清闲, 面对书桌上的 \(N\) 张牌, 他决定给每张染色, 目前小春只有 \(3\) 种颜色: 红色, 蓝色, 绿色. 他询问 Sun 有 多少种染色方案, Sun ...

  10. python基础之Day20part1

    一.hash算法 什么是hash? 类似工厂加工的过程,传bytes串,经过运算返回字符 hash相当于工厂,传给hash算法的内容是原材料,hash值为产品 为何用hash? hash三大特性: 1 ...