Numpy高效工具助你轻松搞定一维数组变换
创作时间:
作者:
@小白创作中心
Numpy高效工具助你轻松搞定一维数组变换
引用
CSDN
等
7
来源
1.
https://blog.csdn.net/x_yan033/article/details/104964407
2.
https://blog.csdn.net/GUNNNNNNN/article/details/129997201
3.
https://blog.csdn.net/m0_37586991/article/details/79758168
4.
https://blog.csdn.net/cd_sywe/article/details/100713286
5.
https://www.h2kinfosys.com/blog/numpy-reshape-and-numpy-flatten-in-python/
6.
https://www.cnblogs.com/wodexk/p/10309431.html
7.
https://www.cnblogs.com/romin/p/10111239.html
在数据科学和机器学习领域,Numpy是Python中最重要、最强大的库之一。它提供了高性能的多维数组对象,以及用于处理这些数组的工具。在实际应用中,我们经常需要对数组进行维度变换,比如将一维数组转换为二维或三维数组,或者将多维数组压缩成一维。本文将详细介绍Numpy中用于维度变换的主要工具,并通过具体示例说明其使用方法。
01
Numpy维度变换的核心工具
reshape()
reshape()函数是Numpy中最常用的维度变换工具。它可以改变数组的形状,但不改变数据。使用reshape()时,需要确保新形状的元素总数与原数组相同。
import numpy as np
# 创建一个一维数组
array_01 = np.arange(24)
print('array_01:\n', array_01, '\narray shape:', array_01.shape)
# 将一维数组转换为三维数组
array_02 = array_01.reshape(3, 2, 4)
print('array_02:\n', array_02, '\narray shape:', array_02.shape)
输出结果:
array_01:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
array shape: (24,)
array_02:
[[[ 0 1 2 3]
[ 4 5 6 7]]
[[ 8 9 10 11]
[12 13 14 15]]
[[16 17 18 19]
[20 21 22 23]]]
array shape: (3, 2, 4)
ravel()
ravel()函数用于将多维数组转换为一维数组。它会按照数组的存储顺序(通常是行优先)展开数组。
# 将三维数组转换为一维数组
array_03 = array_02.ravel()
print('array_03:\n', array_03, '\narray shape:', array_03.shape)
输出结果:
array_03:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
array shape: (24,)
flatten()
flatten()函数与ravel()类似,也会将多维数组转换为一维数组。但flatten()会返回一个新数组,而不会修改原始数组。
# 使用flatten()将三维数组转换为一维数组
array_04 = array_02.flatten()
print('array_04:\n', array_04, '\narray shape:', array_04.shape)
输出结果:
array_04:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
array shape: (24,)
transpose()
transpose()函数用于转换数组的坐标系。它需要多维数组作为输入,可以改变数组的轴顺序。
# 使用transpose()改变三维数组的轴顺序
array_05 = array_02.transpose(1, 2, 0)
print('array_05:\n', array_05, '\narray shape:', array_05.shape)
输出结果:
array_05:
[[[ 0 8 16]
[ 1 9 17]
[ 2 10 18]
[ 3 11 19]]
[[ 4 12 20]
[ 5 13 21]
[ 6 14 22]
[ 7 15 23]]]
array shape: (2, 4, 3)
02
Numpy数组创建工具
除了维度变换工具,Numpy还提供了多种创建数组的方法:
array():从Python列表或元组创建Numpy数组zeros():创建内容全为0的数组ones():创建内容全为1的数组arange():创建有规律的数组
# 使用array()创建数组
a = np.array([1, 2, 3])
print(a)
# 使用zeros()创建全0数组
y = np.zeros((2, 3), dtype=int)
print(y)
# 使用ones()创建全1数组
y = np.ones((2, 3))
print(y)
# 使用arange()创建有规律的数组
x = np.arange(5)
print(x)
输出结果:
[1 2 3]
[[0 0 0]
[0 0 0]]
[[1. 1. 1.]
[1. 1. 1.]]
[0 1 2 3 4]
03
一维数组的切片和索引
Numpy还提供了强大的数组切片和索引功能,可以方便地选择和操作数组中的元素。
# 一维数组的切片
a = np.arange(10)
b = a[2:7:2]
print(a, b)
# 简单索引
x = np.array([[1, 2], [3, 4], [5, 6]])
y = x[[0, 1, 2], [0, 1, 0]]
print(x)
print(y)
# 布尔索引
x = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
y = x[x > 5]
print(x)
print(y)
输出结果:
[0 1 2 3 4 5 6 7 8 9] [2 4 6]
[[1 2]
[3 4]
[5 6]]
[1 4 5]
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
[ 6 7 8 9 10 11]
04
总结
Numpy提供了丰富的工具来处理一维数组的维度变换。通过reshape()、ravel()、flatten()等函数,我们可以轻松地在不同维度之间转换数据。这些工具在数据预处理、特征工程和模型训练中都发挥着重要作用。掌握这些基本操作,将帮助你更高效地处理数据科学和机器学习任务。
热门推荐
DeepSeek如何弯道大超车:震撼硅谷巨头 击溃出口管制
洪山菜薹高价背后:农民收入大揭秘
春节打卡中山陵:南京最火景点攻略
南京熙南里:非遗贺新春,体验文化盛宴
灵山胜境免票啦!春节打卡攻略请收好
冬钓鲫鱼,虫饵直接用只是“初级选手”,老钓手都用这3种方法
县医院普通医生成功逆袭哈佛大学麻省总医院访问学者
安排活动需求:从入门到专家的全面指南
年夜饭新趋势:线上预定成主流
快手年夜饭直播:从南到北的美味集合
石家庄到广州自驾必备清单:1845公里安全驾驶全攻略
浙江人年夜饭必吃菜谱大揭秘!
咖啡因摄入过量实际有损健康,风险如下
熬夜后喝红牛是否有效?红牛成分及其对身体的影响解析
2025年春节期间天津交通指南:10天不限号+8天高速免费
金小鸥教你如何正确使用止痛药
如何在《我的世界》中打造绚烂烟花秀?一文掌握烟花制作与发射技巧!
杜尚《泉》:艺术史上的惊世之作
红霉素:呼吸系统疾病的“新星”?
如何有效恢复被删除或解散的微信群聊,重拾交流的乐趣
安格尔《大宫女》VS《泉》:谁更美?
中国喜剧界的代表人物之一:赵本山
春节摄影秘籍:拍出完美新年祝福图片
过年为什么要吃饺子
鞭炮的寓意和象征:从驱邪避邪到祈福迎祥
如何高效建立和维持一个活跃的群聊:技巧与方法分享
湖南省黄羽肉鸡养殖:智能化养殖助力乡村振兴
小笨鸡的花式吃法大揭秘!
家常炖鸡:营养美味全攻略
苏轼:北宋文化的灵魂人物