将包含另一个数组的Numpy数组转换为单个数组

时间:2020-05-02 20:30:06

标签: python arrays numpy

“ x”是熊猫数据框的一列。为了能够将“ x”乘以形状尺寸为(2,2)的Numpy,“ A”,我将“ x”转换如下:

x = copy[["x"]].values
x = np.asarray([x, 1.0]).reshape((1, 2))

然后我将转换后的“ x”数组乘以上述数组“ A”,并将“ K”添加到结果中。 (K是一个常数= 0.01):

J = x.dot(A).dot(x.T) + K

这将产生数组“ J”,其外观大致如下:

array([[array([[0.2531513 ],
       [0.25792632],
       [0.2462218 ],
       ...,
       [3.02035684],
       [3.09856273],
       [3.12451776]])]], dtype=object)

如您所见,数组“ J”包含另一个数组。内部数组有1418个元素。 J:

  1. 长度为1。
  2. 具有尺寸(1,1)。

我需要J的尺寸为(1418,1)。这是我尝试不起作用的(来自论坛):

  • np.concatenate(J).ravel()
  • np.array(J).flatten()
  • np.array(J).ravel()
  • J.reshape(-1)
  • np.concatenate(J))

有人可以帮忙吗?我浏览了论坛,但找不到符合我确切要求的任何内容。

2 个答案:

答案 0 :(得分:0)

似乎您有一个对象数组,如下所示:

J = np.empty(1,object)
J[:] = [np.arange(1418)]
J >> array([array([   0,    1,    2, ..., 1415, 1416, 1417])], dtype=object)

因此,首先必须将其转换为数字数组,然后对其进行整形:

如果您希望J为(1418,1),请使用以下代码:

np.stack(J).reshape(-1,1)

答案 1 :(得分:-1)

该解决方案非常简单。我需要做的就是使用以下代码从周围的阵列中切出内部阵列:

J = J[0]

感谢所有尝试提供帮助的人。

相关问题