【Python模块】- Numpy

Numpy 是一个强大的 N 维数组。Numpy的矢量化、索引和广播概念快速且通用,是当今阵列计算的事实标准。

数值计算工具。提供全面的数学函数、随机数生成器、线性代数例程、傅里叶变换等。

1. NumPy Ndarray 对象

NumPy 最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。

Ndarray 内部结构:

  • 一个指向数据(内存或内存映射文件中的一块数据)的指针
  • 数据类型或 dtype,描述在数组中的固定大小值的格子
  • 一个表示数组形状的元组,表示各维度大小的元组
  • 一个跨度元组,其中的整数表示 在当前维度跨越到下一个元素需要的字节数

在这里插入图片描述

创建 Ndarray 对象

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

各参数的意义:

object数组或嵌套的数列
dtype数组元素的数据类型,可选
copy对象是否需要复制,可选
order创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
subok默认返回一个与基类类型一致的数组
ndmin指定生成数组的最小维度

2. Numpy 数据类型

比 Python 内置的数据类型要多很多,基本上可以和C语言额数据类型对应上,

详细内容: https://www.runoob.com/numpy/numpy-dtype.html.

将数据类型应用于 Ndarrary

student = np.dtype([('name','S20'),('age',np.int8)])   #S20表示一种数据类型,而不是常量字符串
d = np.array([('Bob',20),('Alice',19)],dtype=student)
print(student)
print(d)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GsNPAlC9-1649233937492)(C:\Users\XieZhendong\Documents\Scrshot\20220405111622.png)]

3. Numpy 数组

数组属性

NumPy 数组的维数称为秩(rank),秩就是轴的数量,即数组的维度,一维数组的秩为 1,二维数组的秩为 2,以此类推。

Numpy中,每一个项线性的数组称为是一个 ,也就是 维度。比如:二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组。所以一维数组就是Numpy中的轴,第一个轴相当于是底层数组,第二个轴是底层数组里的数组。而轴的数量——秩,就是数组的维数。

很多时候可以声明 axis。axis=0,表示沿着第 0 轴进行操作,即对每一列进行操作;axis=1,表示沿着第1轴进行操作,即对每一行进行操作。

秩 = 轴数 = 维度

Numpy 的数组中比较重要的 ndarray对象属性有:

属性说明
ndarray.ndim秩,即轴的数量或维度的数量
ndarray.shape数组的维度,对于矩阵,n 行 m 列
ndarray.size数组元素的总个数,相当于 .shape 中 n*m 的值
ndarray.dtypendarray 对象的元素类型
ndarray.itemsizendarray 对象中每个元素的大小,以字节为单位
ndarray.flagsndarray 对象的内存信息
ndarray.realndarray元素的实部
ndarray.imagndarray 元素的虚部
ndarray.data包含实际数组元素的缓冲区,由于一般通过数组的索引获取元素,所以通常不需要使用这个属性。

输出数组维度

  • ndarray.ndim:返回数组的维度
  • ndarray.shape:返回一个元组,数组的长度就是维度
  • ndarray.itemsize:以字节的形式返回数组中每一个元素的大小
import numpy as np

a = np.array([(1,2,3),(3,4,5)])
print(a.ndim)
print(a.shape)
a.shape = (3,2)
print(a)

b = np.array([(1,2,3),(3,4,5)],dtype = np.int8)
c = np.array([(1,2,3),(3,4,5)],dtype = np.int)
d = np.array([(1,2,3),(3,4,5)],dtype = np.float)
e = np.array([(1,2,3),(3,4,5)],dtype = np.double)
print(b.itemsize)
print(c.itemsize)
print(d.itemsize)
print(e.itemsize)

在这里插入图片描述

4. 创建数组

ndarray 数组除了可以使用底层 ndarray 构造器来创建外,也可以通过以下几种方式来创建。

  • numpy.empty
  • numpy.zeros
  • numpy.ones
参数描述
shape数组形状
dtype数据类型,可选
order‘C’ 用于 C 的行数组,或者 ‘F’ 用于 FORTRAN 的列数组
import numpy as np

x = np.empty([3,2], dtype = int)        # 元素为随机值
print (x)

y = np.zeros(5)                         #5表示维度,默认为浮点数
print(y)

z = np.ones([2,2], dtype = int)
print(z)

在这里插入图片描述

5. 参考

官方开发文档:https://numpy.org/

菜鸟教程:https://www.runoob.com/numpy/numpy-ndarray-object.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Buffedon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值