Python学习 Day66 numpy-Ndarray对象 01

numpy

一、numpy简介

(一)由来

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库

NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant 在 Numeric 中结合了另一个同性质的程序库 Numarray 的特色,并加入了其它扩展而开发了 NumPy。NumPy 为开放源代码并且由许多协作者共同维护开发

(二)作用

NumPy 是一个运行速度非常快的数学库,主要用于数组计算

(三)包含

  • 一个强大的N维数组对象 ndarray
  • 广播功能函数
  • 整合 C/C++/Fortran 代码的工具
  • 线性代数、傅里叶变换、随机数生成等功能

(四)优势

  • 对于同样的数值计算任务,使用numpy要比直接编写Python代码便捷的多
  • numpy中的数组的存储效率和输入输出性能均远远优于Python中等价的基本数据结构,且其能够提升性能是与数组中的元素成比例的
  • numpy的大部分代码都是用C语言写的,其底层算法在设计时就有着优异的性能,这使得numpy比纯Python代码高效得多

(五)应用

NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习

(六)SciPy

是一个开源的 Python 算法库和数学工具包

包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算

(七)Matplotlib

是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向应用程序嵌入式绘图提供了应用程序接口(API)

(八)安装

可使用pip install numpyconda install numpy安装


二、Ndarray对象简介

1.介绍
  • NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引
  • ndarray 对象是用于存放同类型元素的多维数组
  • ndarray 中的每个元素在内存中都有相同存储大小的区域
2.组成

在这里插入图片描述

  • 一个指向数据(内存或内存映射文件中的一块数据)的指针

  • 数据类型或 dtype,描述在数组中的固定大小值的格子

  • 一个表示数组形状(shape)的元组,表示各维度大小的元组

  • 一个跨度元组(stride),其中的整数指的是为了前进到当前维度下一个元素需要"跨过"的字节数


三、数组的基本使用

(一)numpy数据类型

1.数据结构

numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上,其中部分类型对应为 Python 内置的类型

numpy 的数值类型实际上是 dtype 对象的实例,并对应唯一的字符,包括 np.bool_,np.int32,np.float32,等等
在这里插入图片描述

在这里插入图片描述

2.每个内建类型都有一个唯一定义它的字符代码

在这里插入图片描述

3.数据类型对象(dtype)

数据类型对象是用来描述与数组对应的内存区域如何使用,这依赖如下几个方面:

  • 数据的类型(整数,浮点数或者 Python 对象)
  • 数据的大小(例如, 整数使用多少个字节存储)
  • 数据的字节顺序(小端法或大端法)【通过对数据类型预先设定"<“或”>“来决定的。”<“意味着小端法(最小值存储在最小的地址,即低位组放在最前面)。”>"意味着大端法(最重要的字节存储在最小的地址,即高位组放在最前面)】
  • 在结构化类型的情况下,字段的名称、每个字段的数据类型和每个字段所取的内存块的部分
  • 如果数据类型是子数组,它的形状和数据类型
4.创建数据类型对象

原型:numpy.dtype(object, align, copy)

参数 说明
object 要转换为的数据类型对象
align 如果为 true,填充字段使其类似 C 的结构体
copy 复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用

(1)基本使用
注意:首先应该从Anaconda Powershell Prompt进入文件夹,再打开jupyter notebook
在这里插入图片描述

在这里插入图片描述
基本使用

import numpy as np
dt = np.dtype(np.int32)
print(dt)
print(type(dt))
int32
<class 'numpy.dtype'>

字节顺序标注

import numpy as np
dt = np.dtype('<i4')
print(dt)
print(type(dt))
int32
<class 'numpy.dtype'>

创建结构化数据类型

import numpy as py
student = np.dtype([("name","S20"),("age","i4"),("marks","f4")])
print(student)
print(type(student))
[('name', 'S20'), ('age', '<i4'), ('marks', '<f4')]
<class 'numpy.dtype'>

猜你喜欢

转载自blog.csdn.net/ShengXIABai/article/details/121093529