第一章 Numpy基础数据结构
numpy 系列学习:
总章目录:
第一章 Numpy基础数据结构
第二章 ROS常用组件
第三章 ROS建模
第四章 ModelArts模型转换
第五章 HiLens模型管理
第六章 HiLens技能部署
第七章 Hilens红绿灯数据获取+socket通信
第八章 Hilens红绿灯数据获取+socket通信(二)
前言
URDF建模;
TF坐标变换;
Qt工具箱;
提示:以下是本篇文章正文内容,下面案例仅供参考
一、Numpy常用的方法 or 函数
1、数组的基本属性:
- 数组的维度数称为秩(rank),一维数组的秩为1,二维数组自然为2;
- 在Numpy中,每个线性数组称为是一个轴(axes),秩其实是描述轴的数量;
例如: 二维数组相当于两个一维数组,其中每一个一维数组中每个元素又是一个一维数组;
所以,一维数组就是Numpy中的轴(axes),第一个轴相当于底层数组,第二个轴是底层数组里的数组;
而轴的数量——秩,就是数组的维度。
例如:Numpy 一个一维列表
import numpy as np
ar1= np.array([1,2,3,4,5,6,7,8,9])
print(ar1) # 输出一个数组,注意格式:中括号,元素之间没有逗号(和列表区分开);
print(ar1.ndim) # 输出数据维度的个数(轴数),或者说“秩”,维度的数量也称 rank;
print(ar1.shape) # 数组的维度,对于 n行 m列 的数组,shape为( n,m );
print(ar1.size) # 数组中所有元素的总数,对于 n 行,m 列的数组,元素的总数为:n*m;
print(ar1.dtype) # 数组中元素的类型,类似type(),type()是函数,dtype是方法;
ar1.dtype
print(ar1.itemsize)# 数组中每个元素的字节大小,int32类型字节为 4,float64 的字节为 8;
print(ar1.data) # 存放实际数据元素的缓冲区,由于一般通过数据的索引获取元素,通常不用这个属性;
ar1 # 交互方式下输出,会有 array(数组)
-------------------------------------------------------
[1 2 3 4 5 6 7 8 9]
1
(9,)
9
int32
4
<memory at 0x0000024B1A981648>
out(1):array([1, 2, 3, 4, 5, 6, 7, 8, 9])
例如:输入是一个二维列表
import numpy as np
ar = np.array([[1,2,3],[2,3,5]])
print(ar)
print(ar.shape)
print(ar.dtype)
----------------------------------------
[[1 2 3]
[2 3 5]]
(2, 3)
int32
注意dtype属性:
import numpy as np
lst1=[[1,2,3],['x','y','z'],['a','b','c']]
ar2 = np.array(lst1)
print(ar2)
print(ar2.shape)
print(ar2.dtype)
------------------------------------
[['1' '2' '3']
['x' 'y' 'z']
['a' 'b' 'c']]
(3, 3)
<U11 # Unicode(字符串) 11:占用多少字节,多少位;
# 所以使用时候注意数据统一性。
1、 XML语言介绍
方便使用标签,属性描述机器人的相关信息,组织起来比较方便。
机器人整体可以拆解为两部分:
就是 link 和 joint:
1、 <link>
连杆,刚体等元素采用<link>......</link>
标签定义。
描述机器人某个刚体部分的外观以及物理属性, 如:尺寸(size)、 颜色(color)、形状(shape)等;
以及动力学中用到的:惯性矩