2016-11-22 3 views
1

配列Aの最大値がnであるかどうかを調べるコードを書こうとしています。返り値がFalseの場合はTrueを返しますが、値が多次元ならば2つの条件がありますまたは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

アレイは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

あなただけの配列が多次元であるかどうかを確認したい場合は、その値が、1よりも大きい場合には、単にアレイ

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

shapeの長さを確認するには、あなたの配列は、多次元である

しかし、あなたがしたいのは、nが配列の最大値と等しいかどうかをチェックすることです。手動で実装する必要はありません。行列が多次元の場合、最大のリストを返します

largest_element = np.amax(arr) 

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

np.amaxがあることを教えてくれます。

それ以外の場合は、intを返します。

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

それとも、関係なく、Aの大きさのintを返し

np.max(A)

その場合には、numpyのを使用することができます。

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


np.max(A) 
Out[64]: 6 
関連する問題