numpy 库简单使用

一、numpy库简介

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

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

二、numpy库下载

pip install numpy

三、导入库函数

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为数据类型

 import numpy as np

 ''' numpy --> array() '''
a1 = np.array([1,2,3,5,8,13,21,34,55,89], dtype = int) # 由列表创建数组
array_ = (2.3,8,10/3,5.0,1/7) # 创建元组
a2 = np.array(array_) # 由元组创建数组
print('numpy --> array():\n',a1,'\n',a2) ''' numpy --> arange() '''
arange_1 = np.arange(1,30,4)
arange_2 = np.arange(1,3,0.4)
print('numpy --> arange():\n',arange_1,'\n',arange_2) ''' numpy --> linspace() '''
lins_1 = np.linspace(1,10,10)
lins_2 = np.linspace(1,10,9, dtype = int)
print('numpy --> linspace():\n',lins_1,'\n',lins_2) ''' numpy --> random.rand() '''
rand_ = np.random.rand(3,4)
print('numpy --> random.rand():\n',rand_) ''' numpy --> ones() '''
ones_1 = np.ones((3,4)) # 默认为float
ones_2 = np.ones((3,4),dtype = int)
print('numpy --> ones():\n',ones_1,'\n',ones_2) ''' numpy --> zeros() '''
zeros_1 = np.zeros((2,3))
zeros_2 = np.zeros((2,3), dtype = int)
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

数组元素的迭代器

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

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

 import numpy as np
a = np.arange(20)
print('(1) 创建一维数组a:\n',a)
b = a.reshape(2,10)
print('(2) 由a创建(2,10)的数组b:\n',b)
a.resize(4,5)
print('(3) 修改数组a为(4,5):','Shape of a:',a.shape,'\n',a)
c = a.swapaxes(0,1)
print('(4) 调换数组a第1维度与第2维度得到数组c:(5,4)','Shape of c:',c.shape,'\n',c)
d = a.flatten()
print('(5) 对数组a降维,得到一维数组d:','Shape of d:',d.shape,'\n',d)
e = a.ravel()
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

 import numpy as np
a = np.arange(8)
print('a:',a)
print('a[4]:',a[4])
print('a[-6:-3]:',a[-6:-3])
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

 import numpy as np
A1 = np.arange(1,9)
A2 = np.arange(1,30,4) print('A1:',A1)
print('A2:',A2)
print('A2-A1:',np.subtract(A2,A1))
print('A2//A1:',np.floor_divide(A2,A1))
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

 import numpy as np
A1 = np.arange(1,9)
A2 = np.arange(1,30,4) print('A1:',A1)
print('A2:',A2)
print('A1 != A2:',np.not_equal(A1,A2))
print('A1 <= A2:',np.less_equal(A1,A2))
print('Use of where_1:',np.where(A1>=5,'Y','N'))
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)

 import numpy as np
A1 = np.arange(1,9)
A2 = np.arange(1,30,4) print('A1:',A1)
print('A2:',A2)
print('A2的平方根:',np.sqrt(A2))
print('A1的平方:',np.sqrt(A1))
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. 让history显示时间

    如何让history显示时间 linux和unix上都提供了history命令,可以查询以前执行的命令历史记录 但是,这个记录并不包含时间项目 因此只能看到命令,但是不知道什么时间执行的 如何让his ...

  2. angular.min.js:118 Error: [ng:areq] http://errors.angularjs.org/1.5.8/ng/areq?

    1,错误如图所示 简单说下错误原因是:没有js没有注册进去. 解决方法: 1.看下index.html有没有引入你的js文件. 2.看下app.js有没有注册js,比如我这次就是这步没做好,合并代码时 ...

  3. C#使用Spire.Doc Word for .Net读写Word

    以前对Excel或Word文档操作都使用微软的COM组件Microsoft Word 15.0 object library. 但是这种方式必须要求服务器上安装Office,而且会出现读写操作完成后未 ...

  4. Oracel递归查询start with ...connect by prior在Mysql中的实现

    Oracle是一个强大的数据库,有很多的函数和语法可以带来很多便利,有些函数和语法在Mysql中有代替的,但是有些没有现成可用的方法,比如Oracle的递归,在Mysql中怎么实现呢? 例子: Ora ...

  5. 安装IDEA的历程

    安装IDEA的历程 写这篇博客的主要目的就是记录自己安装IDEA的"复杂"过程,顺便给一些需要帮助的人提供一些帮助,以及让他们可以少走一些弯路.之所以说"复杂" ...

  6. 变邻域搜索(Variable neighborhood search)

    变邻域搜索(Variable neighborhood search)VNS是Hansen等提出的一种元启发近似算法,它通过在不同的邻域结构内跳转搜索, 能够避免陷入局部最优解. 算法主要分为两部分: ...

  7. python包的一些问题

    1查看python包的版本 2 卸载包的方法 3指定python包的安装版本 参考网址 https://blog.csdn.net/colourful_sky/article/details/8018 ...

  8. 笔记之monkey参数(一)

    monkey 参数 参数分类 常规类参数 事件类参数 约束类参数 调试类参数 常规类参数 常规类参数包括帮助参数和日志信息参数.帮助参数用于输出Monkey命令使用指导:日志信息参数将日志分为三个级别 ...

  9. ajax执行成功不进入success方法

    当dataType的值为json时,传入的值和返回的值符合json格式的时候,执行成功才会进入success方法,否则进入error方法.

  10. koa 学习1

    1.搭建环境; npm init -f 2.出现错误 npm ERR!Windows_NT 6.1.7601   解决方法: npm config set proxy null npm install ...