Numpy_03 转置和轴对换

本文深入探讨了Numpy库中的数组操作,包括数组的创建、数据类型管理、数学运算、索引与切片、转置及轴对换、通用函数应用、数据处理以及数组的文件读写和线性代数计算。特别关注了数组转置和高维数组的处理技巧,如利用np.dot进行矩阵内积计算,以及高维数组的transpose和swapaxes方法。

github博客传送门
博客园传送门

Numpy系列

Numpy_01 创建 指定数据类型 查看维度和数据类型 简单的数学运算
Numpy_02 索引和切片
Numpy_03 转置和轴对换
Numpy_04 通用函数
Numpy_05 数据处理
Numpy_06 数组的文件输入输出 线性代数

数组转置

arr = np.arange(15).reshape((3, 5))  # 创建一个值为 0-14的一维数组 再reshape成一个 3行5列的数组
print(arr)
print(arr.T)  # 将数组转置输出

利用np.dot计算矩阵内积 条件 第一个数组的 行 必须等于第二个数组的 列

arr = np.random.randn(6, 3)  # 创建一个 随机的 6行3列的数组
print (arr)
print (np.dot(arr.T, arr))  # 计算转置后的数组和 转置前的内积

高维数组的情况

arr = np.arange(16).reshape((2, 2, 4))  # 创建一个 值为 0-15的数组 再reshape成 一个 两层 2行4列的数组
print(arr)
print('==========分割线==============')
print(arr.transpose((1, 0, 2)))  # 没看懂传的参数什么意思,自己研究下哈哈哈.

高维数组转置

print(arr)
print('==========分割线==============')
print(arr.swapaxes(1, 2))  # 没看懂穿的参数什么意思 但部分高维数组传参(1,2)或(2,1)都可转置成功
### 关于 `vtk.numpy_interface` 的用法及相关信息 `vtk.numpy_interface` 是 VTK 提供的一个接口模块,用于简化 NumPy VTK 数据结构之间的转换操作。它允许开发者轻松地将 NumPy 数组与 VTK 中的数据对象(如点数据、单元数据等)相互传递操作。 以下是关于该模块的一些核心功能及其使用方法: #### 1. 主要子模块 `vtk.numpy_interface` 包含两个主要的子模块: - **DataSetAdapter**: 这是一个适配器类,可以将 VTK 数据集封装成更易于使用的 Python 对象。 - **algorithms**: 提供了一些基于 NumPy 的算法实现,可以直接应用于 VTK 数据集中[^1]。 #### 2. 基本用法示例 下面展示如何利用 `vtk.numpy_interface` 将 NumPy 数组映射到 VTK 数据结构中,并执行一些基本的操作。 ```python import vtk from vtk.util import numpy_support as nps import numpy as np # 创建一个简单的 VTK 多边形网格 points = vtk.vtkPoints() points.InsertNextPoint(0, 0, 0) points.InsertNextPoint(1, 0, 0) points.InsertNextPoint(1, 1, 0) polydata = vtk.vtkPolyData() polydata.SetPoints(points) # 使用 numpy_interface 获取点数组 numpy_points = nps.vtk_to_numpy(polydata.GetPoints().GetData()) print("NumPy Array of Points:", numpy_points) # 修改 NumPy 数组并同步回 VTK 数据结构 numpy_points[:, 1] += 1 # 抬高 y 坐标 nps.numpy_to_vtk(numpy_points.ravel(), deep=True).reshape(-1, 3) polydata.GetPoints().SetData(nps.get_vtk_array_type(numpy_points.dtype)) ``` 上述代码展示了如何通过 `numpy_support` 模块完成 NumPy VTK 数据间的互转。虽然严格意义上这不是 `vtk.numpy_interface` 的直接调用方式,但它提供了类似的便利性[^2]。 #### 3. 官方文档资源 对于详细的 API 文档以及更多高级用法,建议查阅官方资料或第三方扩展工具的相关说明。例如,在 PyVista 项目中也提到了对 VTK 接口的支持,这可能间接涉及 `numpy_interface` 的应用案例[^3]。 访问链接如下(需自行查找具体章节): - [VTK Official Documentation](https://vtk.org/doc/) - [PyVista GitHub Repository](https://gitcode.com/gh_mirrors/py/pyvista) --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值