我定义了以下数组:
self._list = np.zeros((1, 180))
在类
的 init 方法中和
lidar_data = np.zeros((1, 180))
在同一类
的调用方法中 无限期地调用调用方法。
我想保存激光雷达传感器的数据并分析我正在做的事情,
self._list = np.vstack((self._list, lidar_data[None, :]))
当我打印lidar_data.shape
时,
self._list = np.vstack((self._list, lidar_data[None, :]))
已注释掉,但未注释时,
lidar_data.shape
出现(1,0)
因此我无法保存数据并收到以下错误
File "/usr/local/lib/python2.7/dist-packages/numpy/core/shape_base.py", line 230, in vstack
return _nx.concatenate([atleast_2d(_m) for _m in tup], 0)
ValueError: all the input array dimensions except for the concatenation axis must match exactly
为什么lidar_data.shape
的值会发生变化?
保存数据的最佳方法是什么?
编辑:
尽管lidar_data
最初的形状为(1,180),但在获取数据之后它的形状为(180, )
,所以通过lidar_data[None, :]
我得到的形状为(1, 180)。
编辑2:
lidar_data = np.zeros((1, 180))
lidar_data = controller.sensor(33).getMeasurements()
lidar_data = np.array(lidar_data) #shape (180, )
lidar_data = lidar_data[None, :] #shape (1, 180)
print 'self._list: ', self._list.shape #shape (1, 180)
print 'lidar_data: ', lidar_data.shape #shape(1, 180)
#self._list = np.vstack((self._list, lidar_data))
This works fine,and the output is
self._list: (1, 180)
lidar_data: (1, 180)
the problem arises when
print 'self._list: ', self._list.shape
print 'lidar_data: ', lidar_data.shape
self._list = np.vstack((self._list, lidar_data))
当我运行脚本时,我收到以下错误,
self._list: (1, 180)
lidar_data: (1, 0)
File "/usr/local/lib/python2.7/dist-packages/numpy/core/shape_base.py", line 230, in vstack
return _nx.concatenate([atleast_2d(_m) for _m in tup], 0)
ValueError: all the input array dimensions except for the concatenation axis must match exactly