【Numpy】基础学习:一文了解np.newaxis的作用、用法

【Numpy】基础学习:一文了解np.newaxis的作用、用法
在这里插入图片描述

🌈 个人主页:高斯小哥
🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化Python基础【高质量合集】PyTorch零基础入门教程👈 希望得到您的订阅和支持~
💡 创作高质量博文(平均质量分92+),分享更多关于深度学习、PyTorch、Python领域的优质内容!(希望得到您的关注~)


🚀 一、np.newaxis的引入

  在NumPy中,np.newaxis是一个非常有用的工具,它用于在数组的指定位置增加一个新的轴(维度)。理解并正确使用np.newaxis可以让我们在处理多维数组时更加灵活,轻松实现数组的扩展和重塑。

  np.newaxis常常用于将一个一维数组转化为二维数组,或者将二维数组转化为三维数组等。它本质上是一个占位符,表示我们想要在某个位置插入一个新的轴。

🎯 二、np.newaxis的基本用法

下面是一个简单的例子,展示如何使用np.newaxis将一个一维数组转化为二维数组:

import numpy as np

# 创建一个一维数组
arr_1d = np.array([1, 2, 3, 4])

# 使用np.newaxis增加一个新维度
arr_2d = arr_1d[np.newaxis, :]

print("一维数组:")
print(arr_1d)
print(arr_1d.shape)
print("转化为二维数组:")
print(arr_2d)
print(arr_2d.shape)

输出:

一维数组:
[1 2 3 4]
(4,)
转化为二维数组:
[[1 2 3 4]]
(1, 4)

在这个例子中,arr_1d是一个一维数组,通过arr_1d[np.newaxis, :],我们在数组的第一个维度(即最外层)增加了一个新的轴,将其转化为一个二维数组。

💡 三、np.newaxis的进阶用法

np.newaxis不仅可以在数组的第一个维度增加新轴,还可以在数组的任意位置增加新轴。下面是一个例子:

import numpy as np

# 创建一个二维数组
arr_2d = np.array([[1, 2], [3, 4]])

# 在数组的第二个维度(即列的方向)增加一个新轴
arr_3d = arr_2d[:, np.newaxis, :]

print("二维数组:")
print(arr_2d)
print(arr_2d.shape)
print("转化为三维数组:")
print(arr_3d)
print(arr_3d.shape)

输出:

二维数组:
[[1 2]
 [3 4]]
(2, 2)
转化为三维数组:
[[[1 2]]

 [[3 4]]]
(2, 1, 2)

在这个例子中,arr_2d是一个二维数组,通过arr_2d[:, np.newaxis, :],我们在数组的第二个维度增加了一个新的轴,将其转化为一个三维数组。

🔧 四、np.newaxis与数组重塑

np.newaxis有时可以用来简化数组的重塑操作。例如,我们有一个二维数组,想要将它重塑为一个三维数组,其中一个维度的大小为1,这时就可以使用np.newaxis

import numpy as np

# 创建一个二维数组
arr_2d = np.array([[1, 2], [3, 4]])

# 使用reshape方法重塑为三维数组
arr_3d_reshape = arr_2d.reshape(arr_2d.shape[0], 1, arr_2d.shape[1])

# 使用np.newaxis简化重塑操作
arr_3d_newaxis = arr_2d[:, np.newaxis, :]

print("使用reshape方法得到的三维数组形状:")
print(arr_3d_reshape.shape)
print("使用np.newaxis得到的三维数组形状:")
print(arr_3d_newaxis.shape)

输出:

使用reshape方法得到的三维数组:
(2, 1, 2)
使用np.newaxis得到的三维数组:
(2, 1, 2)

在这个例子中,arr_3d_reshapearr_3d_newaxis是等价的,但使用np.newaxis的代码更加简洁易读。

🚀 五、总结

  np.newaxis是NumPy中一个非常实用的工具,它允许我们在数组的任意位置增加新的维度。通过正确使用np.newaxis,我们可以简化数组的重塑操作。掌握np.newaxis的用法,将使我们在处理多维数组时更加得心应手。

  通过本文的学习,相信你已经对np.newaxis有了更深入的了解。希望你在实际编程中能够灵活运用这一工具,享受NumPy带来的便利和高效。

  最后,如果你有任何问题或建议,欢迎在评论区留言,我们会及时回复并与你交流。祝你学习愉快,编程进步!🚀🎉

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-16 00:22:08       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-16 00:22:08       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-16 00:22:08       82 阅读
  4. Python语言-面向对象

    2024-03-16 00:22:08       91 阅读

热门阅读

  1. 智能网联汽车网络安全威胁具体

    2024-03-16 00:22:08       40 阅读
  2. Nodejs引入模块运行时报错

    2024-03-16 00:22:08       45 阅读
  3. 安卓自定义ScrollView

    2024-03-16 00:22:08       34 阅读
  4. 技术问题记录

    2024-03-16 00:22:08       47 阅读
  5. Spring Cloud面试系列-01

    2024-03-16 00:22:08       49 阅读
  6. 【gpt实践】实用咒语分享

    2024-03-16 00:22:08       44 阅读
  7. uniapp内实现链接跳转到浏览器网页上

    2024-03-16 00:22:08       42 阅读
  8. jdk8与jdk17的区别。springboot2.x与springboot3.x的区别

    2024-03-16 00:22:08       45 阅读
  9. 4.Python从入门到精通—Python 基础语法详细讲解-下

    2024-03-16 00:22:08       39 阅读
  10. Reactor,Proactor,Actor网络模型

    2024-03-16 00:22:08       31 阅读
  11. 蓝桥杯第1167题——荷马史诗

    2024-03-16 00:22:08       45 阅读