我已经使用np.empty初始化了存储桶,之后使用np.nan初始化了存储桶。这是更好的方法吗?我不知道如何创建一个真正的空数组!
下面的代码是算法的第一部分。该代码正在运行!
另一个问题:我使用“ 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)))
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
array = [97,3,100]
bucket = BucketSort(array)
#print(bucket.distribution_pass())
print(bucket.gathering_pass())
Input: [97,3,100]
Output: [100,3,97]