Давайте рассмотрим действие вашей функции:
Сделайте начальный образец:
In [22]: arr = np.random.choice(15,13)
In [23]: arr
Out[23]: array([ 1, 3, 0, 14, 13, 13, 10, 9, 5, 0, 12, 12, 2])
Внутри l oop возьмите образец из этого:
In [25]: samp = np.random.choice((arr), 5)
In [26]: samp
Out[26]: array([14, 5, 5, 3, 3])
1009 * ничего не делает. Что он должен был сделать?
In [27]: samp = np.concatenate([samp])
In [28]: samp
Out[28]: array([14, 5, 5, 3, 3])
взять другой образец (() arr
ничего не делать):
In [29]: samp = np.random.choice(arr, 5)
In [30]: samp
Out[30]: array([13, 3, 9, 9, 12])
In [31]: samp = np.concatenate([samp])
In [32]: samp
Out[32]: array([13, 3, 9, 9, 12])
samp
из Out[28]
был потерян , Если вы хотите сохранить значения в al oop, вам нужно собрать их в структуру, такую как список.
alist = []
for i in range(3):
alist.append(np.random.choice(arr, 5)
создает список из 3 массивов.
Ваша функция не иметь оператор return, поэтому он возвращает None
:
In [33]: np.asarray(None)
Out[33]: array(None, dtype=object)
In [34]: _.shape
Out[34]: ()
, делая массив из None
, получая массив 0d.
In [36]: for i in np.asarray(None): pass
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-36-8942a42b4c6b> in <module>
----> 1 for i in np.asarray(None): pass
TypeError: iteration over a 0-d array