2017-08-01 6 views
0

のために、以前の持つ要素を比較するのは、次の配列を考えてみましょう: x = np.array(["john", "john", "ellis", "lambert", "john"])のpython、numpyの - 文字列の配列で、平等

は前に配列の各要素を比較し、ブール配列を返す方法はあります。 この例では、結果は[True,False,False,False]になります。

これを実現する機能(np.diffに似ています)はありますか?

+6

スライス 'x [1:] == x [: - 1]'を使用していますか? – Divakar

+1

これは 'list'を使っているはずです... –

答えて

2

あなたはインデックス付けでこれを行うことができます。

array[:-1] == array[1:] 
0

リストの最初の項目は、前の値と比較することはできませんし、そうnp.nanをデフォルトにする必要があります。浮遊する入力し

>>> np.concatenate([np.array([np.nan]), x[:-1] == x[1:]]) 
array([ nan, 1., 0., 0., 0.]) 

nan変更を含めることを:元の配列と同一の形状を維持する

0

インデックス作成を使用すると、簡単にこれを行うことができます。

import numpy as np 

x = np.array(["john", "john", "ellis", "lambert", "john"]) 

print x[1:] == x[:-1] 

==オペランドは、ブール値を返し、この場合による2つの比較アイテムの種類にアレイに提示するので動作x[1:] == x[:-1]ステートメント。

x[1:]は、項目0(最初の項目)以外の配列内のすべての要素を表し、x[:-1]は、最後の項目を除く配列内のすべての要素を表します。

関連する問題