Python的list转换Numpy的array问题list转换array最简单的办法就是
import numpy as np
a = [1, 2, 3, 4]
b = np.array(a)numpy教程pdf电子书
最近需要将list转换np.array的数据时,就采⽤了上述的简单转换代码,在测试的时候⽤的⼩数据,⼀个2*3规模的list,很容易就转换成功了,实际应⽤的时候,⽤的⼤概是750*1024的规模的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数组的空间,所以对于循环之前不知道数组⼤⼩的应⽤,需要根据这样的解决,再进⾏具体问题的具体优化。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。