Python 将numpy多维数组转换为列表
我对Python相当陌生。我看了其他类似的话题,但它们并没有完全回答我想做的事情。结果如下:Python 将numpy多维数组转换为列表,python,arrays,list,multidimensional-array,Python,Arrays,List,Multidimensional Array,我对Python相当陌生。我看了其他类似的话题,但它们并没有完全回答我想做的事情。结果如下: coslist[1:4] Out[94]: [array([[ 0.7984719]]), array([[ 0.33609957]]), 0] 这就是我想要的: coslist=[0.7984719,0.33609957,0] 我试过这个: tolist=list(coslist) tolist[1:3] Out[98]: [array([[ 0.7984719]]), array([[ 0.33
coslist[1:4]
Out[94]: [array([[ 0.7984719]]), array([[ 0.33609957]]), 0]
这就是我想要的:
coslist=[0.7984719,0.33609957,0]
我试过这个:
tolist=list(coslist)
tolist[1:3]
Out[98]: [array([[ 0.7984719]]), array([[ 0.33609957]])]
这是:
y=np.array(val).ravel().tolist()
y[1:4]
Out[99]: [array([[ 0.7984719]]), array([[ 0.33609957]]), 0]
正如你所看到的,他们中的任何一个都是我想要的。
任何帮助都将不胜感激 有一个内置的numpy数组方法
coslist = [numpy.array([[ 0.7984719]]), numpy.array([[ 0.33609957]]), 0]
coslist = [x.tolist()[0][0] if type(x)==numpy.ndarray else x for x in coslist]
type(coslst) # Should print <type 'list'>
lst # Should print a list of lists
coslist=[numpy.array([[0.7984719]])、numpy.array([[0.33609957]])、0]
coslist=[x.tolist()[0][0]如果类型(x)==numpy.ndarray else x代表coslist中的x]
类型(coslst)#应打印
lst应打印列表列表
首先,您需要逐项转换列表中的np.array:
coslist=[np.array(item).tolist() for item in coslist]
那么我认为摆脱列表中的列表的唯一方法就是通过迭代:
aux=[]
for x in coslist:
if type(x)==list:
for k in range(len(x[0])):
aux.append(x[0][k])
else:
aux.append(x)
coslist=aux
请注意,我考虑过每个numpy数组中可以有多个值。因为如果您的列表只包含每个值只有一个的np.array,您可以执行以下操作:
coslist=[np.array(item).tolist() for item in coslist]
coslist=[x[0][0] if type(x)==list else x for x in coslist]
或者,如果您想明确地快速回答您的问题,可以:
coslist=[np.mean(coslist[k]) for k in range(len(coslist))]
多维数组:
example=np.array([1,2,3],[1,2],[1,4,5,6,7])
- 使用列表理解
result=[j_i代表项目中的项目,j_i代表项目中的项目]
- 使用lambda和reduce
将工具作为ft导入 结果=ft.reduce(λx,y:x+y,a)
- 使用itertools
进口itertools 链=itertools.chain(*a) 列表(链)
参考资料:您的
collist
是一个充满二维数组和数值的列表,这很难使用。是否确定无法在只有存储在2D数组中的值而没有存储在2D数组中的情况下构建此列表?如果不是的话,也许只是简单的python循环,在这里提取值是一种方法。你已经把这个列表的创建搞砸了。解决问题的正确方法不仅仅是某种后处理步骤;你需要修复创建它的代码,否则你会遇到更多麻烦。我遇到了一个错误,就像我运行它时遇到的一样。这可能是因为最昂贵的不是崎岖不平的道路。这是一份numpy Ndaray的列表。在这种情况下,我完全被搞糊涂了。我举了一个小例子,在这个例子中,你把值放在coslist中。保持数组小。这是列表的前三个元素:coslist[1:4]Out[94]:[array([[0.7984719])、array([[0.33609957])、0]检查coslist=[x.tolist()[0][0]如果类型(x)==numpy.ndarray else x代表coslist中的x]。告诉我它是否有效。如果实际数组比示例更复杂,则可能会失败。