美文网首页
Python的list转换Numpy的array问题

Python的list转换Numpy的array问题

作者: 马小李23 | 来源:发表于2019-06-16 15:55 被阅读0次

list转换array最简单的办法就是

import numpy as np
a = [1, 2, 3, 4]
b = np.array(a)

最近需要将list转换np.array的数据时,就采用了上述的简单转换代码,在测试的时候用的小数据,一个23规模的list,很容易就转换成功了,实际应用的时候,用的大概是7501024的规模的list转换,准确描述是一个length为750的list,每个元素又是np.array的格式,shape为1*1024,结果这个简单转换挂掉了,估计是内部实现的问题,这个转换卡了将近2,3个小时没有出结果,解决的办法很简单,那就是不用list,然后再去转成np.array,原因显而易见,毕竟他们是不同的数据结构,去转换还是存在风险和问题的。就我自己的问题而言,我知道最终要转换成np.array的数组的大小,那么可以如下解决:

shape = [h, w]  #数据最终的大小
#  result = []
# 用np.array直接替换原来的list
result = np.zeros(size=shape)
#  其实本身就是在循环中使用了list的append来动态组合数据
#  因此修改也在for循环中
for i in range(condition):
  #  result.append(result_process_i)
  result[i,:] = result_process_i

这样修改后,就省去了最终从list到np.array的转换开销,不好的地方就是少了动态数组的使用,需要一次性的申请np.array数组的空间,所以对于循环之前不知道数组大小的应用,需要根据这样的解决,再进行具体问题的具体优化。

相关文章

网友评论

      本文标题:Python的list转换Numpy的array问题

      本文链接:https://www.haomeiwen.com/subject/ndsgfctx.html