Python学习笔记——Numpy


1、Numpy

NumPy ( Numerical Python 的简称)是高性能科学计算和数据分析的基础包,
其中包含了数组对象 ( 向量、矩阵、图像等 ) 以及线性代数等。
NumPy库主要功能
• ndarray( 数组 ) 是具有矢量算术运算和复杂广播能力的多维数组。
• 具有用于对数组数据进行快速运算的标准数学函数。
• 具有用于读写磁盘数据、操作内存映射文件的工具。
• 具有线性代数、随机数生成以及傅里叶变换功能。
• 具有用于集成由 C 、 C++ 、 Fortran 等语言编写的代码的工具。
NumPy库的安装
CMD
打开命令窗口
• pip install numpy # 在 cmd 中输入

NumPy库的调用
import numpy as np #约定俗成
在这里插入图片描述

2.数据维度的理解

  • 二维数据

二维数据由多个一维数据构成,是一维数据的组合形式。
表格是典型的二维数据。

  • 多维数据

多维数据由一维或二维数据在新维度上扩展形成。 (比如在二维数据基础上加上时间轴)

在这里插入图片描述

  • 一维数据:列表和集合类型

[3.13, 4.13, 2,34] 有序
{3.13, 4.13, 2,34} 无序

  • 二维数据:列表类型
  • 多维数据:列表类型
  • 高维数据:字典类型或数据表示格式

举例:
计算 A 2 +B 3 ,其中, A 和 B 是一维数组。

a=[0,1,2,3,4]

```cpp
b=[5,6,7,8,9]
c=[]
for i in range(0,5):
c.append(a[i]**2+b[i]**3)
import numpy as np
a_array=np.array(a)
b_array=np.array(b)
c=a_array**2+b_array**3

数组优势
数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据
设置专门的数组对象,经过优化,可以提升这类应用的运算速度
观察:科学计算中,一个维度所有数据的类型往往相同
数组对象采用相同的数据类型,有助于节省运算和存储空间

3.数组

NumPy 库处理的最基础数据类型是由同种元
素构成的多维数组 (ndarry) , 简称“数组”。
• numpy 数组的维数称为秩,每一个线性的数组称为轴。
• 同一个 numpy 数组中所有元素的类型一般是相同的。
在这里插入图片描述
例子
ndarray 在程序中的别名是: array.
np.array() 输出成 [] 形式,元素由空格分割 .

>>> import numpy as np
>>> a=[[1,2],[3,4]]
>>> a_array=np.array(a)
>>> a_array
array([[1, 2],
[3, 4]])
>>> type(a_array)
numpy.ndarray

3.1数组创建

从 Python 中的列表 、元组等类型创建 ndarray 数组
使用 NumPy 中函数创建 ndarray 数组 ,如: arange ,ones, zeros 等。
从字节流 ( raw bytes )中创建 ndarray 数组。
从文件中读取特定格式 ,创建 ndarray 数组。

  • 内置数据结构创建数组

基本格式: NumPy 将根据数据情况关联一个 dtype 类型
np.array(list/tuple, dtype=np.float32)
例子

>>> np.array([[1,2],[3,4]])
>>> np.array(((1,2),(3,4)))
array([[1, 2],
[3, 4]])

有整数有浮点数则转浮点

>>> np.array([[1,1.1],(2,2.1)])
array([[1. , 1.1],
[2. , 2.1]])
  • 数组元素的类型

dtype( 数据类型 ) 是一个特殊对象,它含有 ndarry 将一块内存解释为特定数 据类型所需要的信息。
在这里插入图片描述
在这里插入图片描述

  • 数组元素的类型:原因解释

ndarray 为什么要支持这么多种元素类型?
Python语法仅支持整数、浮点数和复数 3 种类型
Ndarry 的优势
• 科学计算涉及数据较多,对存储和性能都有较高要求
• 对元素类型精细定义,有助于 NumPy 合理使用存储空间并优化性能
• 对元素类型精细定义,有助于程序员对程序规模有合理评估

  • 常用创建数组的函数

使用 Numpy 中函数创建 ndarry 数组,如 arrange , ones , zeros 等
在这里插入图片描述

实例

>>> np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
 
>>> np.ones((3,6))
array([[1., 1., 1., 1., 1., 1.],
      [1., 1., 1., 1., 1., 1.],
      [1., 1., 1., 1., 1., 1.]])
 
>>> np.ones((2,4),dtype=np.int32) :
array([[1, 1, 1, 1],
      [1, 1, 1, 1]])
 
>>> np.eye(4)
array([[1., 0., 0., 0.],
      [0., 1., 0., 0.],
      [0., 0., 1., 0.],
      [0., 0., 0., 1.]])
    
>>> np.full((2,4),4)
array([[4, 4, 4, 4],
[4, 4, 4, 4]])
 
  • 已知尺度大小创建数组

使用 NumPy 中函数创建 ndarray 数组,如: arange, ones, zeros 等

在这里插入图片描述
在这里插入图片描述

  • 数组对象的属性
    在这里插入图片描述
a = np.array([[0, 1, 2, 3], [4, 5, 6, 7]]) #二维数组
b = np.array([0, 1, 2, 3]) #一维数组

在这里插入图片描述
在这里插入图片描述
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_60535956/article/details/127850623

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值