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[ ]:

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM