1. 程式人生 > 實用技巧 >numpy中陣列的布林類索引

numpy中陣列的布林類索引

第一次看到這樣的用法,寫幾行看一下是怎麼用的

#!/usr/bin/env python
# coding: utf-8

# In[1]:


import numpy as np


# In[2]:


outdegrees = np.array([1,2,0,3,0,4,0])
masks = (outdegrees != 0)       
# 這一步程式碼是把outdegrees(numpy陣列)中為零的位置設為false,非零的地方設為True,產生的是一個布林型的numpy陣列
# masks = [ True  True False  True False  True False]

current_nodes 
= np.array([2,1,5,3,6,7,9]) print(masks) print(current_nodes[masks]) # [2 1 3 7] # 這裡是在current_nodes中只取masks為True的對應位置的元素 # In[3]: for i in range(len(outdegrees)): # not np.any(masks) masks至少存在一個True為真,全為false則為假 if not np.any(masks): break print("1:",i) masks = np.array([ False,False,False,False,False,False,False])
for i in range(len(outdegrees)): if not np.any(masks): break print("2:",i) ''' 1: 0 1: 1 1: 2 1: 3 1: 4 1: 5 1: 6 ''' # In[ ]: