Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

the issues of appending arrays generated in the loop with initial empty array

I have the following code, aiming to concatenate arrays generated within a loop, and initiate an empty array before entering the loop. For illustration purposes, i just make loop have one iteration only. However, I found that the result_array still include the initial empty array. I am not clear how to fix this issue, is that possible to append the arrays generated within a loop without setting up initial empty array? For reproducing the problem, am including both code and screenshot of running.

import numpy as np
import hdmedians as hd
x = np.random.rand(5,10,2)
result_array = np.empty((1,2),float)
for i in range(1):#x.shape[1]):
    print('i----',i)
    x1 = x[:,i,:]
    print(x1)
    x2 = hd.medoid(x1,axis=0)    
    x2 = x2.reshape((1,2))
    print(x2)
    print('---------')
    result_array = np.append(result_array, x2, axis =0 )

enter image description here

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

I don’t know the API of hdmedians, so I can’t really suggest a vectorial code (if possible), but you can replace your append in a loop (that is inefficient) with:

np.vstack([hd.medoid(x[:,i,:], axis=0)
           for i in range(x.shape[1])])

Output:

array([[0.3595079 , 0.43703195],
       [0.60276338, 0.54488318],
       [0.4236548 , 0.64589411],
       [0.52324805, 0.09394051],
       [0.52184832, 0.41466194],
       [0.57019677, 0.43860151],
       [0.45615033, 0.56843395],
       [0.20887676, 0.16130952],
       [0.65310833, 0.2532916 ],
       [0.46631077, 0.24442559]])
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading