Numpy小结一

本文主要介绍了Numpy中的核心数据结构ndarray,包括其多种数据类型、六个重要参数,以及如何通过不同方式创建数组,如从Python列表转换、使用np.arange等方法。还提及了随机数组抽样,如标准正太分布和随机数生成,并简要提到了文件I/O在创建数组中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Numpy创建数组

  • Numpy是python进行数据处理的重要基础数据包,其包含了两种重要的数据结构类型, ndarray是numpy基础的数据类型。

ndarray

  • ndarray是多维数组,具有强大的数组运算功能
numpy 中有多种数据类型,其中最重要的有
1. int32
2. int64
3. float32
4. float64
numpy中ndarray有6个参数
1. shape 数组的形状
2. dtype 数据类型
3. buffer 对象暴露缓冲区接口
4. offset 数组数据的偏移量
5.  strides 数据步长
6. order {'C', 'F'}以行或列为主排序
numpy对象的创建方式
  • 从python数据列表、元组等转换
import numpy as np
l = [(1, 2, 3, 4), (2, 3, 4, 5)]
nd1 = np.array(l)
nd1.shape
nd1.dtype
  • 使用np.arrange 、np.ones 、 np.random 、np.linspace 等numpy的原生方法
# 使用arrange
nd2 = np.arrage(0, 100, step=5, dtype=float64)
# 使用ones
nd3 = np.ones(shape=(5, 3, 2), dtype=int32)
# 使用linspace, 把0-1之间的区间平均分成5个数
# 不使用dtype属性改变默认的数据类型,使用numpyd.astype(np.float32)
# 是一个全闭区间
nd4 = np.linspace(0, 1, num=5)
np.astype(np.int32)
np.dtype
# 使用np.random随机生成
nd5 = np.random.randint(0, 10, (2, 4, 4)
  • 使用ndarry创建数组
nd6 = np.ndarray(shape=(2, 3, 5), dtype=int64)
  • 使用full创建数组
nd7 = np.full(shape=(3, 3, 3), fill_value=255.0)
nd7.dtype
  • 使用eye创建数组
numpy.eye(N, M=None, k=0, dtype=<type 'float'>)  
#k表示从下标第几个开始
其中:
- `N`:输出数组的行数。
- `M`:输出数组的列数。
- `k`:对角线索引:0(默认)是指主对角线,正值是指上对角线,负值是指下对角线。
列如:
nd8 = np.eye(5, 5)
nd8

array([[1., 0., 0., 0., 0.],
       [0., 1., 0., 0., 0.],
       [0., 0., 1., 0., 0.],
       [0., 0., 0., 1., 0.],
       [0., 0., 0., 0., 1.]])
随机数组抽样
  • 标准正太分布
# 没有固定个参数, 每增加一个参数增加一个维度
# 形成一个标准正太分布
np.random.randn(10, 10, 10)
  • 随机抽样
np.random.random(size=(5, 5, 5))
  • 标准方差, 代表数据的稳定性
np.random.normal(local=100, scale=50, size=(20, 15))
# local: 定位值
# scale: 波动值
# size: 数据shape
  • 随机数
# rand 和 random 的区别在于 random需要用size来描述
# rand 需要用参数来描述, 每一个参数就是一个维度
np.random.rand(45, 21, 10)
  • logspace
np.logspace(start=0, stop=100, num=101, base=np.e)
# 生成一个以base为底,并且指数为start开头 以(start-stop)/num为步长的num个幂 
  • diag
# np.diag构建对角矩阵构建对角矩阵 np.diag(v,k=0)参数为列表即可
# v可以是一维或二维的矩阵
# k<0表示斜线在矩阵的下方
# k>0表示斜线在矩阵的上方
np.diag([3, 6, 9], k=0)
文件 I/O 创建数组
  • CSV
import numpy as np
data1 = np.genfromtxt('./dog.dat')
data2 = np.loadtxt('./dog.dat')
data3 = np.mafromtxt('./dog.dat')
data4 = np.ndfromtxt('./dog.dat')
data5 = np.recfromtxt('./dog.dat')
# Numpy原生文件类型用np.save和np.load读写
data6 = np.save('cat.npy', data1)
np.load('cat.npy')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值