Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将numpy多维数组转换为列表_Python_Arrays_List_Multidimensional Array - Fatal编程技术网

Python 将numpy多维数组转换为列表

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

我对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.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]。告诉我它是否有效。如果实际数组比示例更复杂,则可能会失败。