【发布时间】:2015-11-17 15:11:39
【问题描述】:
我是 Python 的真正初学者,我的 ndarray 经常出现问题。 我对括号很困惑(是否有任何在 Python 中任何地方使用括号的示意图综合?)。我总是最终得到具有许多维度的数组。 现在我有这个:
>>> values
Out[1]:
array([[[ array([[ 4.23156519, -0.93539198],
[ 3.50074853, -1.67043386],
[ 4.64192393, -1.03918172],
[ 4.52056725, 0.2561267 ],
[ 3.36400016, 0.26435125],
[ 3.82025672, 1.16503286]])]]], dtype=object)
从这里,我怎样才能减少尺寸?我只想要一个 6x2 阵列。我尝试了np.reshape,但由于values 的当前形状是 (1,1,1),我无法直接将数组重塑为 6x2 的形状。
对于这个愚蠢的问题,我很抱歉,我正在寻找一个通用且示意性的答案,它可以解释我如何从更高维度传递到更低维度,反之亦然。
这是我创建array 的方式。 values 是 clustered_points
indices=[] # initialize indices
clustered_points=[] # initialize array containing points in different sub-arrays=clusters
for k in range(len(mu)):
a=r[:,k]
index=[t for t in range(len(a)) if a[t] == 1]
indices.append(index)
clustered_points.append(data[indices[k]])
clustered_points=np.reshape(clustered_points,(len(clustered_points),1,1))
【问题讨论】:
-
我可以用
values.reshape(6,2)轻松地重塑它...你得到什么错误?你也试过values.astype(np.float).reshape(6,2)吗? -
第一种情况:
ValueError: total size of new array must be unchanged第二种情况:ValueError: setting an array element with a sequence -
数组中有一个数组。外层有 dtype 对象。
-
你是怎么想出那个代码的?您不想要的几个长度为 1 的维度,您在
reshape调用中显式添加。
标签: python arrays numpy dimensions brackets