本章主要对Numpy库的简单介绍及使用方法

目录

本章主要对Numpy库的简单介绍及使用方法

1. Numpy 有什么功能

2.Numpy函数介绍:

1.使用Numpy库需要在编译式导入Numpy库

3.Numpy中的维度:

array函数用于将列表或元组转换为数组

arange函数用于生成一维数组

linspace函数用于生成一个一维数组,其数据是一个等差数列

logspace函数用于生成一个一维数组,其数据是一个等比数列

zeros函数用于创建一个元素全为零的数组

eye函数用于创建元素中一个对角线全为一的数组矩阵

onse函数用于创建元素全为1的数组

diag函数用于生成对角线为列表V的数组

random.random函数用于创建元素为size的随机数组

random.rand函数用于生成服从均匀分布的随机数组

random.randn函数用于生成服从正态分布的随机数组

random.randint函数用于生成指定范围的整型随机数

shape函数用于读取矩阵的维度或修改数组尺寸


1. Numpy 有什么功能

  • NumPy主要的功能之一用来操作数组和矩阵。
  • NumPy是科学计算、深度学习等高端领域的必备工具。 使用TensorFlow、Caffe 框架训练神经网络模型时,需要进行大量复杂的运算,可以直接调用NumPy里面的API。
  • NumPy还包含了很多使用的数学函数,覆盖了很多的数学领域,比如,线性代数、傅里叶变换、随机数生成。
  • NumPy可以取代–些商用的数学软件。Matlab 一个交互式环境。因此可以理解为
  • Python + NumPy == Matlab

原文链接:https://blog.csdn.net/BaiJing1999/article/details/100652011

2.Numpy函数介绍:

1.使用Numpy库需要在编译式导入Numpy库

import numpy as _numpy
//导入numpy库并取别名为_numpy

2.Numpy中的维度

Numpy中维度就是平常所说的一维(只有x轴)、二维(x、y轴)、三维(x、y、z轴)

#标量print后只有一个数字
#一维print后有一对花括号 [ ]
#二维print后有两对 [ [] ]
#三维print后有三对[ [ [] ] ]
#依次类推

3.array(接收对象,dtype = 转换后数据类型,copy = True,order = 'K',subok = False,ndmin = 0)

  • array函数用于将列表或元组转换为数组

  • 接收对象:可为公开数组接口的任何对象,__array__方法返回数组的对象,或任何(嵌套)序列
  • dtype:数组所需的数据类型。如果没有给出,那么类型将被确定为保持序列中的对象所需的最小类型
  • copy:如果为true(默认值),则复制对象。否则,只有当__array__返回副本,obj是嵌套序列,或者需要副本来满足任何其他要求(dtype,顺序等)时,才会进行复制
  • order:指定阵列的内存布局。如果接收对象不是数组,则新创建的数组将按C顺序排列(行主要),除非指定了'F',在这种情况下,它将采用Fortran顺序(专业列)。如果object是一个数组,则以下成立。 {'K','A','C','F'},可选

  • subok : 如果为True,则子类将被传递,否则返回的数组将被强制为基类数组(默认)

  • ndmin :指定结果数组应具有的最小维数。根据需要,将根据需要预先设置形状。

  • 返回值:满足要求的数组对象

s1 = [1,2,3,10]
#创建一维列表s1
a1 = _numpy.array(s1,dtype = int)
#将列表s1转换为数组,数据类型为int型
s2 = [[1,2,3,10]]
#创建二维列表s2
a2 = _numpy.array(s2,dtype = int)
#将列表s1转换为数组,数据类型为int型
tp = (2,4,6,9,4)
创建元组tp
a3 = _numpy.array(tp,dtype = float)
#将列表a2转换为数组,数据类型为flosr型
#s1.dtype      s1.size        s1.itemsize   s1.ndim       s1.shape
#查看数组类型   查看元素个数   查看元素大小   查看数组维度   查看数组结构

4.arange([start , ],stop[ , step ,],stype = None)

  • arange函数用于生成一维数组

  • start:代表初始值,默认从0开始

  • stop:代表终止值,必填参数

  • step:代表步长,默认为1

_numpy.arange(10)
#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
_numpy.arange(5,10)
#array([5, 6, 7, 8, 9])
_numpy.arange(5,10,2)
#array([5, 7, 9])
#以上分别省略了初始值和步长

5.linspace(start,stop,num = 50,endpoint = True,retstep = False,dtype = None,axis = 0)

  • linspace函数用于生成一个一维数组,其数据是一个等差数列

  • start:代表初始值,必填参数

  • stop:代表终止值,必填参数

  • num:代表生成数据的个数,默认为50

  • endpoint:代表是否包含终止值,默认为True

  • retstep:代表是否显示步长,默认为False

  • dtype:代表数据类型,默认为

  • axis:代表轴向,默认为0,代表沿X轴

  • axis=0,表示结果的行数发生变化。axis=1,表示结果的列数发生变化

_numpy.linspace(10,20,10)
#array([10.        , 11.11111111, 12.22222222, 13.33333333, 14.44444444,15.55555556, 16.66666667, 17.77777778, 18.88888889, 20.        ])_numpy.linspace(10,20,10,endpoint = False)
#array([10., 11., 12., 13., 14., 15., 16., 17., 18., 19.])_numpy.linspace(10,20,10,endpoint = False,retstep = True)
#(array([10., 11., 12., 13., 14., 15., 16., 17., 18., 19.]), 1.0)_numpy.linspace(10,20,10,endpoint = True,retstep = True,dtype = int)
#(array([10, 11, 12, 13, 14, 15, 16, 17, 18, 20]), 1.1111111111111112)
#最后两句代码显示的步长不同,但是数组相同。是因为dtype为int类型,所以小数强转为int类型

7.logspace(start,stop,num = 50,endpoint = True,base = 10.0,dtype = None,axis = 0)

  • logspace函数用于生成一个一维数组,其数据是一个等比数列

  • start:代表初始值,必填参数

  • stop:代表终止值,必填参数

  • num:代表生成数据的个数,默认为50

  • endpoint:代表是否包含终止值,默认为True

  • base:代表底数,默认为10.0

  • dtype:代表数据类型,默认为

  • axis:代表轴向,默认为0,代表沿X轴

_numpy.logspace(10,20,5)
#array([1.00000000e+10, 3.16227766e+12, 1.00000000e+15, 3.16227766e+17,1.00000000e+20])_numpy.logspace(10,20,5,endpoint = False)
#array([1.e+10, 1.e+12, 1.e+14, 1.e+16, 1.e+18])_numpy.logspace(10,20,5,endpoint = False,base= 100.0)
#array([1.e+20, 1.e+24, 1.e+28, 1.e+32, 1.e+36])
#底数为100_numpy.logspace(10,20,5,endpoint = True,base = 10.0,dtype = int,axis = 0)
#array([-2147483648, -2147483648, -2147483648, -2147483648, -2147483648])
#底数为10

8.zeros(shape,dtype = float,order = 'C')

  • zeros函数用于创建一个元素全为零的数组

  • shape:代表数组尺寸,可以是数值或元组
  • dtype:代表数组中的元素的数据类型,默认为float
  • order:代表存储多维数组时,是列优先'F'还是行优先'C',默认为行优先
  • shape代表数组尺寸,故可以使用[]或()分别代表列表或元组的尺寸
  • 当shape为[]或()时,可以传入多个数值
    • 如_numpy.zeros((2,2,2)),代表2个3维数组,其元素含有2行2列
    • 如_numpy.zeros((2,2,2,2)),代表4个4维数组,其元素含有2行2列
    • 如_numpy.zeros((2,2,2,2,2)),代表6个5维数组,其元素含有2行2列
    • 总结:当传入的数值大于2时,每增加一个数值代表维度加一,而最终的数字个数由前两个数字综合确定
_numpy.zeros((2,2))
#array([[0., 0.],[0., 0.]])_numpy.zeros([2,2])
#array([[0., 0.],[0., 0.]])_numpy.zeros((2,2),dtype = int)
#array([[0, 0],[0, 0]])
#与前两个元素类型不同_numpy.zeros((3,5),dtype = int,order = 'F')
#array([[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 0, 0, 0, 0]])
#目前暂时没发现列优先和行优先的区别

9.eye(N,M = None,k = 0,btype = < class 'float' >,order = 'C')

  • eye函数用于创建元素中一个对角线全为一的数组矩阵

  • N:代表行数
  • M:代表列数
  • k:代表对角线元素个数,默认为0
  • dtype:代表数组中元素的数据类型,默认为float
  • order:代表存储多维数组时,是列优先'F'还是行优先'C',默认为行优先
    • diag(v,k = 0)
    • 用于创建一个维数为v的维数+1的,对角线元素全为v的数组矩阵
    • v:代表对角线上的元素,可以为元组或列表,默认为0。当元素
    • k:默认为0,元素位于对角线上。当k大于0时,元素v位于对角线上面。当k小于0时,元素v位于对角线的下面
_numpy.eye(3,3)
#array([[1., 0., 0.],[0., 1., 0.],[0., 0., 1.]])_numpy.eye(3,3,dtype = int)
#array([[1, 0, 0],[0, 1, 0],[0, 0, 1]])
#目前暂时没发现列优先和行优先的区别_numpy.diag([3,4,5])
#array([[3, 0, 0],[0, 4, 0],[0, 0, 5]])_numpy.diag((3,4,5),1)
array([[0, 3, 0, 0],[0, 0, 4, 0],[0, 0, 0, 5],[0, 0, 0, 0]])_numpy.diag((3,4,5),-1)
#array([[0, 0, 0, 0],[3, 0, 0, 0],[0, 4, 0, 0],[0, 0, 5, 0]])

10.onse(shape,dytpe = None,order  = 'C')

  • onse函数用于创建元素全为1的数组

  • shape:代表数组尺寸,可以是数值或元组
  • dtype:代表数组中的元素的数据类型,默认为None
  • order:代表存储多维数组时,是列优先'F'还是行优先'C',默认为行优先
  • 函数onse有着zeros函数一样的特点,可参考zeros函数的总结,主要原因是由于shape代表的是数组尺寸
_numpy.ones((2,2))
#array([[1., 1.],[1., 1.]])_numpy.ones((2,2),dtype = int)
#array([[1, 1],[1, 1]])
#目前暂时没发现列优先和行优先的区别

11.diag(V,K=0)

  • diag函数用于生成对角线为列表V的数组

  • V:代表一个一维数组时,结果形成一个以一维数组为对角线元素的二维数组;是一个二维数组时,结果为数组的对角线元素
  • K:默认为0,可选参数。决定列表处于对角线的位置,大于零位于对角线上面,小于零则在下面
_numpy.diag(([1,2,3]))
#array([[1, 0, 0],[0, 2, 0],[0, 0, 3]])_numpy.diag(([1,2,3]),k=1)
#array([[0, 1, 0, 0],[0, 0, 2, 0],[0, 0, 0, 3],[0, 0, 0, 0]])_numpy.diag(([1,2,3]),k=-1)
#array([[0, 0, 0, 0],[1, 0, 0, 0],[0, 2, 0, 0],[0, 0, 3, 0]])

12.random.random(size = None)

  • random.random函数用于创建元素为size的随机数组

  • size:代表数组尺寸,可以是整数或者整数的元组
_numpy.random.random(2)
#array([0.33970551, 0.03921899])
#生成一行的数组,元素为两个_numpy.random.random((1,2))
#array([[0.06720547, 0.67036122]])
#生成一行二列的二维数组

13.random.rand(value)

  • random.rand函数用于生成服从均匀分布的随机数组

  • value:代表数组维数,可选。默认生成一个数值,而不是数组
_numpy.random.rand()
#0.9012041794305755
#生成一个数_numpy.random.rand(2)
#array([0.88723514, 0.16626263])
#生成一行的数组,元素为两个_numpy.random.rand(1,2)
#array([[0.7982949 , 0.94322369]])
#生成一行二列的二维数组

14.random.randn(value)

  • random.randn函数用于生成服从正态分布的随机数组

  • value:代表数组维数,可选。默认生成一个数值,而不是数组
_numpy.random.randn()
#-0.04984522010821525
#生成一个数_numpy.random.randn(2)
#array([-0.15864059, -1.49100105])
#生成一行的数组,元素为两个_numpy.random.randn(1,2)
#array([[-0.09911854, -2.14864424]])
#生成一行二列的二维数组

15.random.randint(low,high = None,size = None,dtype = '1')

  • random.randint函数用于生成指定范围的整型随机数

  • low:最小值
  • high:最大值,在含有尺寸参数时可以省略。省略后默认为生成0到最小值随机数组
  • size:数组的尺寸
  • dtype:输出数组的格式
np.random.randint(0,high = 5)
#4
#随机生成在0到5(不包含5)的区间内的一个整数np.random.randint(3,size = 10)
#array([0, 0, 1, 0, 0, 2, 0, 2, 0, 1])
#随机生成一个元素在0到3(不包含3)的区间内的整数,且数组尺寸为10np.random.randint(0,high = 5,size = (1,2))
#array([[1, 4]])
随机生成一个元素在0到5(不包含5)的区间内的整数,且数组尺寸为一行二列

16.shape(value)

  • shape函数用于读取矩阵的维度或修改数组尺寸

  • value:要读取的矩阵
  • 使用shape函数输出维度,一维数组只输出列数,二维数组输出行数和列数,以此类推
value_A = np.array([1,2,3])
_numpy.shape(value_A)
#(3,)
#一维数组只显示列数value_B = np.array([[1,2,3]])
_numpy.shape(value_B)
#(1, 3)
#二维数组显示行数和列数value_C = np.array([[[1,2,3]]])
_numpy.shape(value_C)
#(1, 1, 3)
#二维数组显示轴,行数和列数value_D = _numpy.array(((1,2,3),(4,5,6)))
#array([[1, 2, 3],[4, 5, 6]])
#两行三列数组value_D.shape = (3,2)
#array([[1, 2],[3, 4],[5, 6]])
#修改为三行两列数组

Python数据清洗N0.2相关推荐

  1. 数据清洗(二):python数据清洗

    python数据清洗 Pandas数据清洗流程: 1.数据的读写:read_csv.read_excel.to_csv to_excel 2.数据的探索与描述:info.head.describe.s ...

  2. Python数据清洗:数据框列名大小写转换

    Python数据清洗:数据框列名大小写转换 Dataframe数据清洗:列名大小写转换 一行代码 Dataframe数据清洗:列名大小写转换 数据清洗:列名的大小写转换(便于merge数据框) 一行代 ...

  3. Python数据清洗实战案例--拉勾招聘数据清洗

    Python数据清洗实战案例–拉勾招聘数据清洗 (本篇博客主要介绍个人对一份数据的清洗代码和清洗效果) 主要涉及应用的库是numpy.pandas.matplotlib,话不多说,直接上代码 #全部行 ...

  4. python数据清洗实战入门笔记(五)数据统计

    数据清洗之数据统计 数据分组方法 练习 1.1在线杂货店订单数据 1.2 数据分组运算 聚合函数使用 练习 分组对象与apply函数 练习 透视图与交叉表 练习 数据集地址: https://pan. ...

  5. python数据清洗去空值_Python 数据清洗--处理Nan

    import numpy as np import pandas as pd from pandas import Series,DataFrame from numpy import nan as ...

  6. python数据清洗小案例giao

    python 数据清洗小案例giao 前言 这篇通过一个小案例 简单介绍几个python 数据清洗分析的常用方法 数据准备: 链接:https://pan.baidu.com/s/1M5xUdB1_8 ...

  7. python数据清洗(excel表格)

    使用python数据清洗 第一步: 安装pandas模块 pip install pandas 第二步: 导入pandas模块 import pandas as pd 第三步: 读取excel表格 d ...

  8. python数据清洗测试题

    python数据清洗测试题 https://nbviewer.jupyter.org/github/zhanghongweip7m8/python-test/blob/master/python%20 ...

  9. python 去除字符串的标点符号 用_7步搞定数据清洗-Python数据清洗指南

    脏数据就是在物理上临时存在过,但在逻辑上不存在的数据. 数据清洗是整个数据分析过程的第一步,就像做一道菜之前需要先择菜洗菜一样. 数据分析师经常需要花费大量的时间来清洗数据或者转换格式,这个工作甚至会 ...

最新文章

  1. mysql try catch_C# try catch finally:异常处理
  2. oracle 行级死锁_ORACLE死锁的分类
  3. SQL里各种联合查询总结
  4. C++_系列自学课程_第_9_课_C语言风格字符串_《C++ Primer 第四版》
  5. RRID和CAS是什么?
  6. 推荐算法炼丹笔记:阿里序列化推荐算法ComiRec
  7. POJ 2823-Sliding Window单调队列解题报告
  8. Chess Queen【数学】
  9. (原)caffe在ubuntu中设置GPU的ID号及使用多个GPU
  10. UIWebView关于XMLHttpRequest的内存泄漏
  11. c++中vector的学习
  12. 【a701】旅行家的预算
  13. linux 信号阻塞和信号未决
  14. 2022年信息安全工程师上午真题及答案解析
  15. WinCC V7.4 过程值归档概述及流程演示
  16. linux 版本号 笔记本_Linux版ThinkPad笔记本正式亮相(图)
  17. 互联网3D数字化时代,3D产品展示开启新商机
  18. 七年级计算机教案模板范文,七年级信息技术论文大纲模板 七年级信息技术论文提纲怎样写...
  19. 有这样一个可爱的菇凉,叫TokenClub!
  20. MacBook M1配置Clion

热门文章

  1. 三菱fx3u八轴-36 8个伺服步进
  2. 电网系统中的OTDR
  3. Simple FOC
  4. 为什么要读原版书籍(各个帖子的整合)
  5. 关于发展民用航天技术
  6. java triplet_使用JavaTuples用Java实现带有Triplet类的Quartet类
  7. 雅达利:乔布斯初出道时老东家的如烟往事
  8. 程序员不服面试结果,惨遭HR怒怼......
  9. 【计算机网络Part 2】数据链路层
  10. 数仓实战|一文看懂数据中台接口数据采集