将数据存储在numpy数组中而不覆盖以前的数据

时间:2018-02-12 13:50:44

标签: python arrays pandas numpy

我正在运行for循环来将数据存储在numpy数组中。问题是每次迭代后,最新的数据都会覆盖以前的数据。我希望能够使用一些用于简单数组的“扩展”功能来存储所有数据。我尝试追加,但它没有存储所有数组的所有值。

data1=np.empty((3,3),dtype=np.int8)
top_model_weights_path = '/home/ethnicity.071217.23-0.28.hdf5'
df = pd.read_csv('/home/instaurls.csv')
for row in df.itertuples():
    data = io.imread(row[1])
    data1=np.append(data1,data)
print(data1)

预期输出

[[[ 34  34  34]
  [ 35  35  35]
  [ 40  40  40]
  ..., 
  [  8   8   8]
  [ 12  12  12]
  [ 12  12  12]]

 [[ 39  39  39]
  [ 30  30  30]
  [ 25  25  25]
  ..., 
  [ 11  11  11]
  [  1   1   1]
  [  5   5   5]]

 [[ 54  54  54]
  [ 44  44  44]
  [ 34  34  34]
  ..., 
  [ 32  32  32]
  [  9   9   9]
  [  0   0   0]]

 ..., 
 [[212 212 210]
  [167 167 165]
  [118 118 116]
  ..., 
  [185 186 181]
  [176 177 172]
  [170 171 166]]

 [[220 220 218]
  [165 165 163]
  [116 116 114]
  ..., 
  [158 159 154]
  [156 157 152]
  [170 171 166]]

 [[220 220 218]
  [154 154 152]
  [106 106 104]
  ..., 
  [144 145 140]
  [136 137 132]
  [158 159 154]]]

1 个答案:

答案 0 :(得分:1)

top_model_weights_path = '/home/ethnicity.071217.23-0.28.hdf5'
df    = pd.read_csv('/home/instaurls.csv')
data1 = np.array([io.imread(row[1]) for row in df.itertuples()])

如果您的数据集不是太大,那么首先使用标准列表然后转换为numpy数组没有问题,我想。

如果您不熟悉隐式列表:

data1 = []
for row in df.itertuples():
    data1.append(io.imread(row[1]))
data1 = np.array(data1)