Я инициализировал корзину с помощью np.empty, а после - с помощью np.nan. Это лучший способ? Я не знал, как создать действительно пустой массив! Мне нужен массив EMPTY с 10 строками и столбцами len (array)
Приведенный ниже код является первой частью алгоритма. Код работает!
Другой вопрос: я использовал «for» для итерации блока, который является массивом numpy. Это правильно?
import numpy as np
class BucketSort():
def __init__(self,array):
self.array = array
def distribution_pass(self):
bucket = np.empty((10,len(self.array)),dtype=int)
bucket[:] = np.nan
#rows =[]
# cols = []
for num in array:
for j in range(bucket.shape[1]):
bucket[num % 10, j] = num
#rows.append(num%10)
#cols.append(j)
break
print()
return bucket
def gathering_pass(self):
array = []
self.bucket = BucketSort.distribution_pass(self)
for i in range(self.bucket.shape[0]):
for j in range(self.bucket.shape[1]):
if not np.isnan(self.bucket[i,j]):
#print(self.bucket[i,j])
array.append(self.bucket[i, j])
return array
def main(array):
bucket = BucketSort(array)
BucketSort.distribution_pass(bucket)
array = BucketSort.gathering_pass(bucket)
return array
array = [97,3,100]
print(main(array))
#bucket = BucketSort(array)
#print(bucket.distribution_pass())
#print(bucket.gathering_pass())
Ввод: [97,3,100]
Ввод: [100,3,97]