1
基本的に多次元配列をとり、配列の3番目の列が1番目と2番目の列の斜辺であるかどうかを確認します。これはこれまでのコードです。私は、何が起こっているのかをより良く理解するために、コメントにいくつかの要素を追加しました。特定の条件を満たす多次元配列のSUBSETを返しますか?
import numpy
import random
def triple(mm):
mm=np.asanyarray(mm) # I think this is how we specify that the paremeter should be an array, however,
# it's possible the parameter isn't just mm, it could be 'j', 'qw', 'mm1', whatever. I'm not sure
# how to work that while specifying the parameter must be array.
assert mm.ndim == 2 # we want mm or w/e the name of the parameter to be a 1 multidimensional array
assert mm.shape[1] == 3 # we want 3 columns, with any number of rows
x = mm[:,0]
y = mm[:,1]
z = mm[:,2] # 3rd column is to be checked to see if its's the hypotenuse of 1st & 2nd columns
zz = np.hypot(x,y)
condition = np.any(z) == np.any(zz)
return np.array([condition, mm]) # I'm not sure how to specify it here, that we want the function to return a subset
# of the original multi-dim array, where the 3rd column is in fact the hypotenuse of the first and
# second columns. And we want to exclude the rows that don't satisfy this condition.
そして、私は確認したいと思います。その '条件' は、私が設定している場合、私はわからない
ValueError: setting an array element with a sequence.
:
mm = np.array([[5,5,5],[5,12,13],[3,4,5],[5,11,21],[8,15,17]])
triple(mm)
をしかし、私は取得しています誤りがありますこれについては正しい方法でもありますので、誰かが正しい方向に私を助けてくれるのですか? 詳細についてはお気軽にお問い合わせください。
しかし、私が望むのは、条件が満たされている行を返す出力です(基本的にすべてのピタゴラスのトリプルを返します)。したがって、それは次のようになります: 'array([[5,12,13]、[3,4,5]、[8,15,17]])' – zainy
編集されました。ブールインデックスを使用します。 –
さて、それは動作しますが、私は物品がどのように動作しているかを実際に理解していませんか?それの論理のように... – zainy