2016-11-22 48 views
1

我想写一个代码来检查n是否是数组A的最大值如果它返回True,如果它没有返回False但我有两个条件,如果该值是多维的或unidimentional我不知道该怎么写:如何检查一个数组是否是多维的

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

Array is in numpy – Kabou

+0

请看'.shape()'中的值吗? – code11

+1

'A.ndim'是告诉你'A'中维数的属性。 –

回答

1

尝试以下操作:

import numpy as np 

my_array = np.array([[1,2,3],[4,5,6]]) 
d = len(my_array.shape) 
print(d) # Output: 2 

现在,y你可以测试d,如果它的值是2,那么你的数组是2维。

2

如果你只是想检查数组是多维的,只是检查数组

arr = np.array([[1,2,3],[4,5,6],[7,8,9]]) 
print len(arr.shape) 

shape的长度,如果该值大于1,那么你的数组是多维的

但是如果你想要做的只是检查n是否等于数组中的最大值,那么你不需要手动实现它。 np.amax会告诉你:

largest_element = np.amax(arr) 

if n == largest_element: 
    return True 
else: 
    return False 
3
def is_multidimensional(A): 
    return A.ndim > 1 
0

如果矩阵是多维的,然后将最大返回一个列表。

否则它将返回一个int。

if type(max(A))== list: 
    # do some stuff for handling multidimensional 
else: 
    # do some stuff for handling unidimensional 

或者你可以在不管的尺寸,这种情况下,

np.max(A)

返回一个int使用numpy的。

A =[[1,2,3,4],[1,4,5,6]] 
max(A) 
Out[57]: [1, 4, 5, 6] 


np.max(A) 
Out[64]: 6 
相关问题