我正在尝试编写一个代码来检查n是否是数组A的最大值,如果它返回True如果它不返回False但我有两个条件,如果值是多维数据或单数据我不知道如何写下:
if [A is unidimentional]:
maximum=A[0]
for i in range(A.shape[0]):
if max(A[i],maximum)==A[i]:
maximum=A[i]
if max(n,maximum)!=n:
return False
return True
else:
maximum=A[0][0]
for i in range(A.shape[0]):
for j in range(A.shape[1]):
if max(A[i][j],maximum)==A[i][j]:
maximum=A[i][j]
if max(n,maximum)!=n:
return False
return True
如果有人知道如何写出这个条件,那将非常有用谢谢
答案 0 :(得分:4)
def is_multidimensional(A):
return A.ndim > 1
答案 1 :(得分:2)
尝试以下方法:
import numpy as np
my_array = np.array([[1,2,3],[4,5,6]])
d = len(my_array.shape)
print(d) # Output: 2
现在,您可以针对d
进行测试,如果其值为2,那么您的数组是2维。
答案 2 :(得分:2)
如果您只是想检查一个数组是否是多维的,只需检查数组shape
的长度
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
print len(arr.shape)
如果该值大于1,那么您的数组是多维的
但是,如果要做的只是检查n
是否等于数组中的最大值,则不需要手动实现它。 np.amax
会告诉您:
largest_element = np.amax(arr)
if n == largest_element:
return True
else:
return False
答案 3 :(得分:1)
如果矩阵是多维的,那么max将返回一个列表。
否则它将返回一个int。
if type(max(A))== list:
# do some stuff for handling multidimensional
else:
# do some stuff for handling unidimensional
或者你可以在这种情况下使用numpy
np.max(A)
都会返回一个int。
A =[[1,2,3,4],[1,4,5,6]]
max(A)
Out[57]: [1, 4, 5, 6]
np.max(A)
Out[64]: 6