python,numpy-在字符串数组中,将元素与前一个元素进行比较以确定相等性 让我们考虑下面的数组: x=np.array([“john”、“john”、“ellis”、“lambert”、“john”])

python,numpy-在字符串数组中,将元素与前一个元素进行比较以确定相等性 让我们考虑下面的数组: x=np.array([“john”、“john”、“ellis”、“lambert”、“john”]),python,numpy,Python,Numpy,是否有方法将数组的每个元素与前一个元素进行比较并返回布尔数组。 在本例中,结果将是[True,False,False,False] 是否有任何功能(类似于np.diff)可以实现这一点?您可以通过索引实现这一点: array[:-1] == array[1:] 您可以通过索引执行此操作: array[:-1] == array[1:] 列表中的第一项无法与以前的值进行比较,可能会默认为np.nan 要保持与原始阵列相同的形状,请执行以下操作: >>> np.concaten

是否有方法将数组的每个元素与前一个元素进行比较并返回布尔数组。 在本例中,结果将是
[True,False,False,False]


是否有任何功能(类似于
np.diff
)可以实现这一点?

您可以通过索引实现这一点:

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

您可以通过索引执行此操作:

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

列表中的第一项无法与以前的值进行比较,可能会默认为
np.nan

要保持与原始阵列相同的形状,请执行以下操作:

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

包含的
nan
将类型更改为浮动。

列表中的第一项无法与以前的值进行比较,可能会默认为
np.nan

要保持与原始阵列相同的形状,请执行以下操作:

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

包含的
nan
将类型更改为浮动。

使用索引,您可以轻松完成此操作

import numpy as np

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

print x[1:] == x[:-1]
语句
x[1::==x[:-1]
之所以有效,是因为
==
操作数返回布尔值,在本例中,由于两个比较项的类型,它们以数组形式显示


x[1::]
表示数组中除第一项0之外的所有元素,而
x[:-1]
表示数组中除最后一项之外的所有元素

使用索引,您可以轻松地执行此操作

import numpy as np

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

print x[1:] == x[:-1]
语句
x[1::==x[:-1]
之所以有效,是因为
==
操作数返回布尔值,在本例中,由于两个比较项的类型,它们以数组形式显示


x[1::]
表示数组中除第一项0之外的所有元素,而
x[:-1]
表示数组中除最后一项之外的所有元素

使用切片
x[1::==x[:-1]
?您可能只需要为此使用
列表
…使用切片
x[1::==x[:-1]
?您可能只需要为此使用
列表
。。。