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()等函数,我们可以轻松地在不同维度之间转换数据。这些工具在数据预处理、特征工程和模型训练中都发挥着重要作用。掌握这些基本操作,将帮助你更高效地处理数据科学和机器学习任务。
热门推荐
梦见卖房的深层含义:从经济到心理的全方位解读
什么是盯市盈亏、平仓盈亏、浮动盈亏、当日参考盈亏?有什么区别?
防治蟑螂的昆虫生长调节剂研究进展
欧拉好猫频现用户投诉,续航、启动、制动等问题频发
无证房屋征收如何维权?西安房屋征收赔偿标准及计算方式详解
无证房屋买卖合同受法律保护吗
被子可以用洗衣机洗吗?一文详解不同材质被子的清洗方法
塔克拉玛干沙漠到底有多深?如果把沙子都挖光,下面会是什么?
ps怎么抠掉图中不想要的东西?分享5种一键抠图方法,建议收藏
空腹血糖受损如何调理
关于车辆年检那些事,你都知道吗?
对年女婿要参加吗?合炉仪式参与指南
曾国藩识人术:如何通过人的容貌识人用人?通过脸型看人的性格?
有备无患,这份假期儿童常备药指南建议一键收藏
从贵定北到小七孔乘坐公交怎么走-从贵定北到小七孔乘坐公交怎么走最方便
一文带你了解全球鲍鱼贸易概况
杏花的花期一般是几月份?
白天的事晚上就成梦了
如何利用自媒体弘扬民族文化与传统艺术
柬埔寨国王:两次流亡中国,晚年定居北京,称中国是第二祖国
研究揭示:并非所有膳食纤维都有减肥效果,这种纤维效果最好
儿童溺水多发季,这些安全知识务必告诉孩子
天中的道地药材(第十期)——金丝皇菊
楚庄王的辉煌胜利与中原霸权的确立——邲之战
内存开启XMP的好处和坏处
服务器管理口使用说明
NBA防守形态和侧重点的变化,联盟防守到底变强了还是变弱了?
适度饮酒到底有多危险?新研究给出了答案
白果是什么?与开心果有何不同?
机器人出故障?如何进行有效的机器人维修?