Cris 的 Python 数据分析笔记 02:NumPy 数据定位

版权声明:转载请注明出处~ 摸摸博主狗头 https://blog.csdn.net/cris_zz/article/details/84112937

02. NumPy 数据定位

1. numpy 快速判断每个元素

import numpy as np

vector = np.array([1,2,3,5,2])
# array([False,  True, False, False,  True])  可以快速对 ndarray 中的每个元素进行判断,返回的是一个包含每个元素比较的列表的元祖
vector == 2

'''
    快速对二维数组中的每一个元素进行判断,返回的数据类型也是二维数组/list of list
    array([[False,  True, False],
           [False, False,  True],
           [ True,  True, False]])
'''
matrix = np.array([[1,2,3],[4,5,2],[2,2,11]])
matrix == 2
array([[False,  True, False],
       [False, False,  True],
       [ True,  True, False]])

2. numpy 判断并返回对应的元素

import numpy as np

'''
    可以对 ndarray 里的每个元素进行判断,返回的是每个元素是否符合的布尔值,将这个布尔值当作 ndarray 的索引 index 又可以找到该 ndarray 
    数据结构中所有的符合的元素并返回(往往用于二维数组)
'''
vector = np.array([1,2,3,4,2])
index = vector == 2
# [False  True False False  True]
print(index)
# [2 2]
print(vector[index])

matrix = np.array([[1,2,3],[2,2,4],[4,5,2]])
index = matrix == 2
'''
    [[False  True False]
     [ True  True False]
     [False False  True]]
'''
print(index)
# [2 2 2 2]
print(matrix[index])

# 超快速定位二维矩阵元素(牛逼!!!)
'''
    首先找到所有行的第一列,判断每个元素是否等于2,返回布尔类型的列表,然后根据返回的列表作为索引得到具有该元素的所有行,然后可以取出这些行的
    所有列的数据!
    
'''
index = matrix[:,1] == 2
# [ True  True False]
print(index)
'''
    [[1 2 3]
 [2 2 4]]
'''
print(matrix[index,:])

[False  True False False  True]
[2 2]
[[False  True False]
 [ True  True False]
 [False False  True]]
[2 2 2 2]
[ True  True False]
[[1 2 3]
 [2 2 4]]

猜你喜欢

转载自blog.csdn.net/cris_zz/article/details/84112937