我正在尝试在python中实现SelectionSort算法,因此我创建了一个numpy数组,并希望将其作为算法中的参数传递。
def SelectionSort(array=None):
for i in range(len(array)):
for j in range(i+1,len(array)):
if(array[j]<array[i]):
array[i],array[j]=array[j],array[I]
但是我得到了这个ValueError:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-12-fddcbe25a509> in <module>
----> 1 SelectionSort(np.array([2,5,6,3,7,2,4]))
<ipython-input-11-a238fe8a1004> in SelectionSort(array, length_of_random_array)
1 def SelectionSort(array=None,length_of_random_array=None):
----> 2 if(array==None):
3 array = np.random.randint(-10000,10000,size=length_of_random_array)
4
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我认为它正在尝试对数组的每个元素应用算法。
1 def SelectionSort(array=None,length_of_random_array=None):
----> 2 if(array==None):
3 array = np.random.randint(-10000,10000,size=length_of_random_array)
4
我认为它正在尝试对数组的每个元素应用算法。
您是正确的:Numpy将操作应用于整个数组。从理论上讲,您的测试可能会导致以下模棱两可的真值:
if (np.array([1,2,None]) == None):
if (np.array([False,False,True]):
使用is
执行None
-checks。None
是单例,因此参考检查将始终有效。
if (<array defaulting to None> is None):
if (True):
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句