python- numpy中的shape的理解

import os
import re
import sys
import numpy as np
import pprint
from tensorflow.keras.layers import *

def concat_v1():
    list1=[1,2,3,4]
    list2=[11,12,13,14,15,16,17,18]
    list99=[[1,2,3],[4,5,6]]
    x1=np.array(list1)
    x2=np.array(list2)
    x99=np.array(list99)
    print("-----------------------")
    print(x1.shape)
    #(4,)
    print(x2.shape)
    #(8,)
    print(x99.shape)
    #(2,3)
if __name__ == '__main__':
    concat_v1()

shape的总结:

1)当是 2维的时候,则x.shape() =(a,b) ,a 表示 行数,b表示列数

2)当时1维的时候,则x.shape()=(a,),a 表示 这一维度的个数

### 如何在 Python-PCL 中使用 NumPy 进行点云处理 #### 加载并转换点云数据 为了利用 `numpy` 的强大数组操作能力来增强 `python-pcl` 对点云的操作效率,在加载点云之后通常会将其转化为 `numpy` 数组以便后续高效计算。 ```python import pcl import numpy as np # 使用 python-pcl 加载 pcd 文件中的点云数据 cloud = pcl.load('example.pcd') # 将点云对象转为 numpy 数组形式,方便进行矩阵运算和其他高级操作 points_array = np.asarray(cloud) print(f"Point cloud shape after conversion: {points_array.shape}") ``` 此段代码展示了如何通过 `pcl.load()` 函数读取 `.pcd` 格式的文件,并立即将其内容作为 `PointCloud` 类型的对象存储到变量 `cloud` 中[^1]。随后,借助于 `np.asarray()` 方法可以将这个点云集轻松地转变为一个二维的 `numpy` 数组 `points_array`,其中每一行代表单个三维坐标点的数据[^2]。 #### 处理来自 LiDAR 的二进制格式点云数据 对于像 KITTI 数据集这样的激光雷达(LiDAR)采集得到的原始二进制格式(`.bin`)点云文件,则可以直接采用 `numpy` 来解析这些文件的内容: ```python # 解析 bin 文件成 float32 类型的一维向量再重塑为 N*4 维度的矩阵, # 假设每四个连续浮点数表示一个空间点加上反射强度或其他属性值。 lidar_points = np.fromfile('path_to_lidar_data.bin', dtype=np.float32).reshape(-1, 4) # 如果只需要XYZ坐标而忽略其他附加信息的话可以选择前三列构建新的 PointCloud 实例 xyz_cloud = pcl.PointCloud(lidar_points[:, :3]) ``` 这里说明了当面对非标准PCD格式而是更紧凑高效的二进制编码方式保存下来的点云记录时,怎样依靠 `numpy` 提供的功能快速完成数据导入工作,并创建适用于进一步分析工作的 `PointCloud` 结构体实例。 #### 可视化点云数据 最后一步是展示经过预处理后的点云效果,这可以通过调用 `pcl.pcl_visualization` 模块下的函数实现交互式可视化窗口内的渲染显示: ```python visualizer = pcl.pcl_visualization.CloudViewing() # 显示灰度模式下无颜色区分仅基于高度变化呈现阴影深浅差异的效果图 visualizer.ShowMonochromeCloud(xyz_cloud) while not visualizer.WasStopped(): pass ``` 上述脚本片段实现了启动一个图形界面用于观察由 XYZ 坐标的集合构成的空间分布情况;循环等待直到用户主动关闭该窗口为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值