【Python入门知识】NumPy数组拆分,超详细讲解

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

今天我们来学习python中NumPy数组的拆分

拆分 NumPy 数组

拆分是连接的反向操作。

连接(Joining)是将多个数组合并为一个,拆分(Spliting)将一个数组拆分为多个。

我们使用 array_split() 分割数组,将要分割的数组和分割数传递给它。

实例

将数组分为 3 部分:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 3)

print(newarr)

更多python资料、源码、教程: 点击此处跳转文末名片获取

运行实例

注释:返回值是一个包含三个数组的数组。

如果数组中的元素少于要求的数量,它将从末尾进行相应调整。

实例

将数组分为 4 部分:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

newarr = np.array_split(arr, 4)

print(newarr)

运行实例

提示:我们也有 split() 方法可用,但是当源数组中的元素较少用于拆分时,

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是使用NumPy库对MNIST数据集进行划分的示例代码: ```python import numpy as np # 读取MNIST数据集 train_images = np.load('mnist/train_images.npy') train_labels = np.load('mnist/train_labels.npy') test_images = np.load('mnist/test_images.npy') test_labels = np.load('mnist/test_labels.npy') # 定义训练集、验证集和测试集的比例 train_ratio = 0.8 val_ratio = 0.1 test_ratio = 0.1 # 计算划分后的样本数量 num_train_samples = int(train_ratio * train_images.shape[0]) num_val_samples = int(val_ratio * train_images.shape[0]) num_test_samples = int(test_ratio * test_images.shape[0]) # 打乱训练集的顺序 indices = np.random.permutation(train_images.shape[0]) train_images = train_images[indices] train_labels = train_labels[indices] # 划分训练集、验证集和测试集 train_images_split = train_images[:num_train_samples] train_labels_split = train_labels[:num_train_samples] val_images_split = train_images[num_train_samples:num_train_samples+num_val_samples] val_labels_split = train_labels[num_train_samples:num_train_samples+num_val_samples] test_images_split = test_images[:num_test_samples] test_labels_split = test_labels[:num_test_samples] # 打印每个集合的样本数量 print('训练集样本数量:', train_images_split.shape[0]) print('验证集样本数量:', val_images_split.shape[0]) print('测试集样本数量:', test_images_split.shape[0]) ``` 在这个示例中,我们首先读取了MNIST数据集,并定义了训练集、验证集和测试集的比例。接着,我们计算了划分后每个集合的样本数量。为了避免训练集和验证集的顺序对模型训练产生影响,我们使用了NumPy库中的random.permutation()函数来打乱训练集的顺序。接着,我们使用NumPy库中的数组切片操作来划分训练集、验证集和测试集,并打印了每个集合的样本数量。 希望这个示例能够帮助到你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值