IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> numpy数组介绍 -> 正文阅读

[Python知识库]numpy数组介绍

1:了解NUmpy

  • 主要介绍什么是为什么回有数组、数组对象和数组对象的作用

1.1:为什么会有NUmpy

  • 在数据分析的过程中,需要接触的数据是非常多的,但是普通的python数据类型对于处理大,大量的数据可能会显得力不从心(处理数据的效率会变慢),这个时候人们就迫切的需要一种可以快速处理大量数据的数据类型,所以数组(Numpy中的一个数据类型)就诞生了
  • 对于处理数据需要的数据类型的发展
内建数据结构,list
array模块
Numpy基础包

1.2:什么是Numpy

  • Numpy(Numerical Python)是目前Python数值计算中最为重要的基础包。大多数计算包都提供了基于Numpy的科学函数功能,将Numpy的数组对象作为数据交换的通用语。

1.3:Numpy的特点

  • 提供了基于数组的便捷算术操作以及广播机制
  • 对数据进行快速的矩阵计算
  • 对硬盘中数组数据进行读写操作
  • 提供了高效多维数组

1.4:Numpy的安装

  • 由于Numpy是一个python中的一个第三方库,所以安装方式就是使用pip进行安装
pip install numpy

拓展(理解python的数据类型)

动态类型语言

  • python是动态类型语言,也就是说对于变量的类型不需要进行声明,在这个变量存在的地址中都包含了这个变量的数据类型、值和id地址,所以python的代码执行效率会比较慢,因为一个数据所携带的东西太多了

静态类型语言

  • C是静态类型语言,也就是说在定义变量的时候需要对这个变量进行声明,而这样就使得这个变量的地址所携带的东西会变少,也就使得C的执行效率会变高

2:数组和列表

列表

  • 在python中的列表具有很高的包容性,,我们可以在列表中存储各种各样的数据,包括列表,元组和字典
  • 列表中各个元素的数据类型可以不同

数组

  • 在数组中所有元素的数据类型都要相等,当中整形的优先级最低,其次为浮点数,最后为字符
  • 整形 < 浮点型 < 字符型

数组对于列表的优势

  • 由于在数组中所有的数据类型都是一样的所以,数组的运算效率相对于列表来说是快得多
    效率对比
  • 通过效率对比可以发现,数组处理数据的效率要远远高于列表的

3:Numpy入门

  • 主要介绍Numpy模块的一些方法

3.1:Numpy的基础使用

导包操作

  • 在Numpy中导入Numpy有一个不成文的规定,对于导入Numpy库有一个固定的写法为
import numpy as np
  • 这个相当于Numpy的一个固定外号,知道就好

产看Numpy包的版本

  • np.__version__

3.2:使用Numpy创建一维数组

  • 创建数组的方式包括一维数组、二维数组和三维数组,更高维度的数组以现在的需求没有必要学习

创建一维数组

  • 使用列表创建一维数组
import numpy as np

np.array([1, 2, 3, 4, 5])
  • 使用元组创建数组
np.array((1, 2, 3, 4, 5, ))
  • 使用字符串创建数组,需要注意的是,每一个字符串属于是数组中的一个数据,而不是一个字符串中的每一个数字或字母是一个元素

产看数组的类型和数组中数据的类型

  • 产看数组的类型:因为数组和列表长的太相似了,所以才会有这个这个方法来分辨数组和列表
a2 = np.array([1, 2, 3, 4, 5])
a2.dtype
  • 产看数组中数据的数据类型:由于数组中的所有数据的数据类型都是一样的所以需要有一个方法来知道数组中数据的类型,方便做其它的操作
type(a2)

快速创建一维数组

  • 所谓的快速,也就是使用一些代码来创建一个数据非常多的数组,的快捷方式
  • 方法一:先转化为列表或者元组在转换为元组
L = list(range(10))
a3 = np.array(L)
  • 方法二:直接使用arange()函数进行转换
a4 = np.arange(10)  # 直接转换
a5 = np.arange(0, 10, 2)  # 范围转换
a4, a5

创建多个0和1

  • 创建n个0的数组:第一个参数表示要创建多少个元素,dtype参数表示,要创建元素的数据类型,默认为浮点型
  • 创建多个0
a6 = np.zeros(10, dtype=int)
  • 创建多个1
a7 = np.ones(10, dtype=float)

3.3:使用numpy创建多维数组

  • 这里说的多维数组只包括二维和三维数组,多的数组现在学习没有什么必要

创建二维数组

  • 先创建一个二维的列表在转换为一个二维的数组
L1 = [[123, 456, 789], [abc, def, ght]]
a8 = np.array(L1)

创建三维数组

  • 先创建一个三维的列表,在转换为三维的数组
n3 = np.array([
   [
       [1,2,3],
       [4,5,6]
   ],
   [
       [7,8,9],
       [10,11,12]
   ]
])

数组的属性

  • 查看数组
n10
  • 查看数组的秩,也就是数组的维度
n10.ndim
  • 查看数组的形状,也就是这个数组是这个数组的行和列,二维的数组返回的是行和列
n10.shanp
  • 三维数组,第一个数字为有几个元素,二三参数表示每个元素的行和列
a10.shape  # 共有2个元素,每个元素都是两行三列
  • 数组数据的个数, 这个表示的是第一层的数据有几个
len(a9)
  • 返回元素的个数,这个表示的是,一共有多少个元素,代表的是所有的数组
a9.size

3.4:修改数组的维度

  • 数组可以由一维到多维,也可以由多维到一维

一维到二维

  • 使用的是一个方法:reshape
  • 需要注意的是:元素的个数一定要和数组中的位置一致
n1 = np.array(range(12))
n2 = n1.reshape(3, 4)
print(n2)

一维到三维

  • 方法是同一个方法,当这个方法为两个参数的时候,转换的是二维的数组,当这个方法为三个参数的时候为三维的数组
  • 需要注意的是,对于一维转换为三维的数组中的三个参数分别标志,参数一:共有几个元素、参数二和参数三表示:每一个元素所占的行和列
n1 = np.array(range(12))
n2 = n1.reshape(3, 2, 2)	
print(n2)

二维到一维

  • 方法还是方法“reshape”,但是参数只有一个,而且这个参数一定要由小数点,因为这个参数的本质还是一个元组
n4 = n2.reshape(12,)
n4

三维到一维

  • 方法还是方法“reshape”,但是参数只有一个,而且这个参数一定要由小数点,因为这个参数的本质还是一个元组
n5 = n3.reshape(12,)
n5

直接到一维

  • 对于方法“reshape”还需要自己计算一下共有几个数据,然后在传入到一维数组中的参数中去,但是如果遇到数组的参数特别复杂的时候,就会不想计算了,基于这个美好的愿望,可以使用方法“flatten”、“ravel”,可以对高维的数组直接转换为一维
  • flatten方法
  • 对于这个方法,是拷贝了一份新的数组,然后对这个新的数组进行操作,不会对元数组造成影响
n7 = n3.flatten()
n7

# 改变数组中的数据,不会改变原数组
x.flatten()[1] = 100
x
  • reval方法
  • 这个方法是直接对原数组上进行操作,所以会对原数组造成影响
n8 = n3.ravel()
n8

# 改变数组中的数据,改变原数组
x.ravel()[1] = 100
x

3.5:数组的索引

  • 数组的索引和python中的列表索引相似

一维数组的索引

  • 和python中的列表取值一样,列表可以的操作,一维数组同样可以操作
  • 一维数组的取值有单个取值、正取、反取、范围取值、跳转取值
    索引

二维数组的索引

  • 二维数组的取值可以取整行、整列和单个值
    二维数组的索引

数组的切片操作

  • 连续切片
  • 也就是说,是从二维数组中获取自己想要的一部分连续的数组
    连续切片操作
  • 不连续的切片操作
  • 可以随心所欲的从已有的二维数组中获取自己想要的数据,只要是获取的切片方法合适即可,有的时候可以有多个切片方法
    不连续切片操作

3.6:数组的布尔操作

  • 布尔操作的返回值只有True呵Flace,可以通过返回的值来获取数组中的数据
  • 布尔一
    布尔二

3.7:值得替换

  • 单个替换,只是替换数组中的一个元素
    替换单个值
  • 多个值得替换,主要适用于替换一整行得数据
    整行得替换数据

3.8:数组形状得改变

  • 不改变原数组得方法:“reshape”,我们得老朋友了
    不改变原数组
  • 改变原数组:“resize”
    改变原数组

创建随机数组

  • 要使用numpy中的ranint方法
    随机创建数组
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-26 12:02:42  更:2021-07-26 12:03:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 9:33:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码