2024-05-16 16:22:51 发布
网友
我正在尝试创建一个包含两列和多行的numpy数组。第一列表示大小为3的输入向量。第二列表示大小为2的输出向量。你知道吗
arr = np.array([ [np.array([1,2,3]), np.array([1,0])] [np.array([4,5,6]), np.array([0,1])] ])
我期待着:arr[:, 0].shape 返回(2,3),但它返回(2,)
arr[:, 0].shape
使用numpy将输入和输出向量排列到矩阵中的正确方法是什么?你知道吗
所以,密码
arr = np.array([ [np.array([1,2,3]), np.array([1,0])], [np.array([4,5,6]), np.array([0,1])] ])
创建一个对象数组,索引第一列将返回两行,每行中有一个对象,这说明了大小。要得到你想要的东西,你需要把它包起来
np.vstack(arr[:, 0])
从第一列中的对象创建一个数组。这不是很方便,它会使我更有意义地存储在字典里,像这样的东西
io = {'in': np.array([[1,2,3],[4,5,6]]), 'out':np.array([[1,0], [0,1]]) }
结构化数组可以同时提供这两种功能。创造有点棘手,举个例子
arr = np.array([ (1,2,3), (1,0)), ((4,5,6), (0,1)) ], dtype=[('in', '3int64'), ('out', '2float64')])
创建一个具有in和out字段的结构化数组,分别由3个整数和2个浮点组成。可以像往常一样访问行
in
out
In[73]: arr[0] Out[74]: ([1, 2, 3], [ 1., 0.])
或者按字段名
In [73]: arr['in'] Out[73]: array([[1, 2, 3], [4, 5, 6]])
numpy手册有更多的细节(https://docs.scipy.org/doc/numpy-1.13.0/user/basics.rec.html)。我不能添加任何细节,因为我已经打算在一个项目中使用它们一段时间了,但没有
如果确定每列中的元素具有相同的大小/长度,则可以选择并使用numpy.row_stack堆叠结果:
numpy.row_stack
np.row_stack(arr[:,0]).shape # (2, 3) np.row_stack(arr[:,1]).shape # (2, 2)
所以,密码
创建一个对象数组,索引第一列将返回两行,每行中有一个对象,这说明了大小。要得到你想要的东西,你需要把它包起来
从第一列中的对象创建一个数组。这不是很方便,它会使我更有意义地存储在字典里,像这样的东西
结构化数组可以同时提供这两种功能。创造有点棘手,举个例子
创建一个具有
in
和out
字段的结构化数组,分别由3个整数和2个浮点组成。可以像往常一样访问行或者按字段名
numpy手册有更多的细节(https://docs.scipy.org/doc/numpy-1.13.0/user/basics.rec.html)。我不能添加任何细节,因为我已经打算在一个项目中使用它们一段时间了,但没有
如果确定每列中的元素具有相同的大小/长度,则可以选择并使用
numpy.row_stack
堆叠结果:相关问题 更多 >
编程相关推荐