Python Numpy不平坦的列表列表

Python Numpy不平坦的列表列表,python,numpy,Python,Numpy,问题 我想创建一个列表的空列表,然后用每个包含3个元素的列表附加它 rows = [['a', 'b', 'c'], ['c', 'b', 'a'], ..., ['a', 'c', 'b']] values = np.array([]) for row in rows: values = np.append(values, row) 问题在于,默认情况下,这些值被展平 解决方案尝试 我尝试使用“empty”和“ndarray”代替数组。此外,我还尝试设置了形状或数据类型,但值始终是

问题

我想创建一个列表的空列表,然后用每个包含3个元素的列表附加它

rows = [['a', 'b', 'c'], ['c', 'b', 'a'], ..., ['a', 'c', 'b']]
values = np.array([]) 
for row in rows:
    values = np.append(values, row)
问题在于,默认情况下,这些值被展平

解决方案尝试


我尝试使用“empty”和“ndarray”代替数组。此外,我还尝试设置了形状或数据类型,但值始终是扁平的。

使用列表附加而不是numpy附加

values = []
for row in rows:
    values.append(row)

如果需要基于数据的numpy数组,请创建numpy数组:

values = np.array(rows)

这正是构造函数的要点。

请分享一个行示例。它的形状是什么?如果你想要列表,不要使用NumPy。为什么要使用NumPy?你可以使用列表理解,[每行中每行的项目对应每行中的项目]你阅读了np.append文档吗?很明显,如果没有axis参数,它会使参数变平。但是为什么要迭代呢?为什么不使用np.arrayrows、np.vstackrows或np.stackrows?为什么不复制列表,或者更好地使用列表?