[python] كيف يمكنني الحصول على منطقية not-element من سلسلة الباندا؟


1 Answers

أنا فقط أعطيها لقطة:

In [9]: s = Series([True, True, True, False])

In [10]: s
Out[10]: 
0     True
1     True
2     True
3    False

In [11]: -s
Out[11]: 
0    False
1    False
2    False
3     True
Question

لدي سؤال بسيط نسبيًا اليوم. لدي كائن Series الباندا يحتوي على القيم المنطقية. كيف يمكنني الحصول على سلسلة تحتوي على القيمة المنطقية NOT لكل قيمة؟

على سبيل المثال ، ضع في اعتبارك سلسلة تحتوي على:

True
True
True
False

السلسلة التي أريد الحصول عليها تحتوي على:

False
False
False
True

هذا يبدو كما لو أنه يجب أن يكون بسيطًا إلى حدٍ معقول ، ولكن على ما يبدو لقد أضعت مزاجي اليوم = (

شكر!




يمكنك أيضًا استخدام numpy.invert :

In [1]: import numpy as np

In [2]: import pandas as pd

In [3]: s = pd.Series([True, True, False, True])

In [4]: np.invert(s)
Out[4]: 
0    False
1    False
2     True
3    False

EDIT: يظهر الفرق في الأداء على Ubuntu 12.04 ، Python 2.7 ، NumPy 1.7.0 - لا يبدو أنه موجود باستخدام NumPy 1.6.2 على الرغم من:

In [5]: %timeit (-s)
10000 loops, best of 3: 26.8 us per loop

In [6]: %timeit np.invert(s)
100000 loops, best of 3: 7.85 us per loop

In [7]: %timeit ~s
10000 loops, best of 3: 27.3 us per loop



Related