Numpy 数组操作

Posted on 2026-03-13 15:47  打杂滴  阅读(9)  评论(0)    收藏  举报

Numpy 中包含了一些函数用于处理数组,大概可分为以下几类:

image

numpy.reshape

numpy.reshape 函数可以在不改变数据的条件下修改形状,格式如下:

numpy.reshape(arr, newshape, order='C')
  • arr:要修改形状的数组
  • newshape:整数或者整数数组,新的形状应当兼容原有形状
  • order:'C' -- 按行,'F' -- 按列,'A' -- 原顺序,'k' -- 元素在内存中的出现顺序。

 

 

image

 

numpy.ndarray.flat

numpy.ndarray.flat 是一个数组元素迭代器

image

 

numpy.ndarray.flatten

numpy.ndarray.flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组,格式如下:

ndarray.flatten(order='C')

参数说明:

  • order:'C' -- 按行,'F' -- 按列,'A' -- 原顺序,'K' -- 元素在内存中的出现顺序。

image

 

numpy.ravel

numpy.ravel() 展平的数组元素,顺序通常是"C风格",返回的是数组视图(view,有点类似 C/C++引用reference的意味),修改会影响原始数组。

该函数接收两个参数:

numpy.ravel(a, order='C')

参数说明:

  • order:'C' -- 按行,'F' -- 按列,'A' -- 原顺序,'K' -- 元素在内存中的出现顺序。

image

 

翻转数组

 

image

 

image

 

 

import numpy as np

def axis_operation_examples():
"""NumPy数组轴操作函数示例"""

# 创建示例数组
arr_2d = np.array([[1, 2, 3],
[4, 5, 6]])
arr_3d = np.array([[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]]])

print("原始二维数组:")
print(arr_2d)
print("\n原始三维数组:")
print(arr_3d)

# 1. transpose() - 对换数组维度
transposed_2d = arr_2d.transpose()
transposed_3d = arr_3d.transpose((2, 0, 1)) # 指定新轴顺序
print("\ntranspose()操作后:")
print("二维数组转置:")
print(transposed_2d)
print("三维数组调整轴顺序:")
print(transposed_3d)

# 2. ndarray.T - transpose()的快捷属性
transpose_shortcut = arr_2d.T
print("\nndarray.T操作后:")
print(transpose_shortcut)

# 3. rollaxis() - 向后滚动指定的轴
rolled_3d = np.rollaxis(arr_3d, 1, 0) # 将第1轴滚动到第0位置
print("\nrollaxis()操作后:")
print(rolled_3d)

# 4. swapaxes() - 对换数组的两个轴
swapped_3d = np.swapaxes(arr_3d, 0, 2) # 交换第0轴和第2轴
print("\nswapaxes()操作后:")
print(swapped_3d)

if __name__ == "__main__":
axis_operation_examples()

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3