Python 如何使用两种列表理解创建二维numpy ndarray
我尝试使用以下代码创建2D numpy ndarray:Python 如何使用两种列表理解创建二维numpy ndarray,python,numpy,Python,Numpy,我尝试使用以下代码创建2D numpy ndarray: temp = np.array([[np.mean(w2v[word]) for word in docs if word in w2v] for docs in X[:5]]) temp的形状为5,而不是预期的5,x 此外,temps的数据结构类似于:array[list[…],…] 内部列表似乎没有转换为ndarray。您缺少的np.array应该是: temp = np.array([np.array([np.mean(w2v[w
temp = np.array([[np.mean(w2v[word]) for word in docs if word in w2v] for docs in X[:5]])
temp的形状为5,而不是预期的5,x
此外,temps的数据结构类似于:array[list[…],…]
内部列表似乎没有转换为ndarray。您缺少的np.array应该是:
temp = np.array([np.array([np.mean(w2v[word]) for word in docs if word in w2v] for docs in X[:5])])
运行示例:
bob
Out[70]: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
tmp = np.array([np.array([x for x in Y]) for Y in bob])
tmp
Out[72]:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
很可能内部列表的长度不同。它可以从中生成一个2d数组,所以它只生成一个包含指针的1d。实际上是一个与原始列表等效的数组。请注意,正如@hpaulj所评论的,np不能真正处理非平方2d矩阵,在这种情况下,您将拥有一个np数组数组。