zoukankan      html  css  js  c++  java
  • numpy 的布尔值切片

    我们做模型时,可能需要画不同类别的标记不同颜色的值,因此就需要的numpy的布尔值索引,比如说:

    # 导入可视化工具包
    import matplotlib.pyplot as plt
    %matplotlib inline
    from sklearn.datasets import load_iris
    from sklearn.cluster import KMeans
    import numpy as np
    import pandas as pd
    
    X=load_iris().data
    clf = KMeans(n_clusters=3,random_state=0)
    clf.fit(X)
    label = clf.predict(X)
    
    # 颜色和标签列表
    colors_list = ['red', 'blue', 'green']
    labels_list = ['1','2','3']
    x=X
    for i in range(3):
        plt.scatter(x[label==i,0], x[label== i,1], s=100,c=colors_list[i],label=labels_list[i])
        
    # 聚类中心点
    plt.scatter(clf.cluster_centers_[:,0],clf.cluster_centers_[:,1], s=300,c='black',label='Centroids')
    
    plt.legend()
    plt.xlabel('Annual Income (k$)')
    plt.ylabel('Spending Score (1-100)')
    plt.show()

     

    下面介绍一下用法以及例子

    #构造数据
    import  numpy as np      
    names=np.array(["Bob","Joe","Will","Bob","Will","Joe","Joe"])
    np1=np.random.randn(7,4)
    print(names)
    print(np1)
    ['Bob' 'Joe' 'Will' 'Bob' 'Will' 'Joe' 'Joe']
    [[-0.48639127  0.65433213 -0.55487863 -1.41199409]
     [ 0.63196795  0.8091702   0.52156802 -0.7897757 ]
     [-0.2681137   1.58992163 -0.55409051  1.08141762]
     [-0.358811   -0.89604778  1.3655091   0.56664758]
     [ 1.22746199  0.47409502 -0.90998782  0.57441837]
     [-0.23616238 -1.18461867  0.68114549  1.25545332]
     [ 0.04767722  0.9783612  -0.70834461 -0.30132274]]
    #布尔值索引
    print(names=="Bob")
    print(np1[names=="Bob"])
    [ True False False  True False False False]
    [[-0.48639127  0.65433213 -0.55487863 -1.41199409]
     [-0.358811   -0.89604778  1.3655091   0.56664758]]
    #将布尔型数组跟切片混合使用
    print(np1[names=="Bob",2:])
    [[-0.55487863 -1.41199409]
     [ 1.3655091   0.56664758]]
    #也可用不等号(!=),负号对条件进行操作
    print(np1[names!="Bob"])
    [[ 0.63196795  0.8091702   0.52156802 -0.7897757 ]
     [-0.2681137   1.58992163 -0.55409051  1.08141762]
     [ 1.22746199  0.47409502 -0.90998782  0.57441837]
     [-0.23616238 -1.18461867  0.68114549  1.25545332]
     [ 0.04767722  0.9783612  -0.70834461 -0.30132274]]
    #多种条件组合(&,|等)
    np1[(names=="Bob")|(names=="Will")]
    array([[-0.48639127,  0.65433213, -0.55487863, -1.41199409],
           [-0.2681137 ,  1.58992163, -0.55409051,  1.08141762],
           [-0.358811  , -0.89604778,  1.3655091 ,  0.56664758],
           [ 1.22746199,  0.47409502, -0.90998782,  0.57441837]])
    #为了将data中的所有负值都设置为0
    np1[np1<0]=0
    print(np1)
    [[0.         0.65433213 0.         0.        ]
     [0.63196795 0.8091702  0.52156802 0.        ]
     [0.         1.58992163 0.         1.08141762]
     [0.         0.         1.3655091  0.56664758]
     [1.22746199 0.47409502 0.         0.57441837]
     [0.         0.         0.68114549 1.25545332]
     [0.04767722 0.9783612  0.         0.        ]]
  • 相关阅读:
    sqlserver 表操作 SQL篇
    C#知识点汇总
    DDL
    sqlserver2008简介
    面向对象继承
    IO文件流
    【帅刺猬课堂】Winform中使用WPF的UserControl
    KS Gantt甘特图控件通过递归加载无限层级的数据
    Office 每次打开需要重新配置的问题修复方法
    扩展方法
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/14072875.html
Copyright © 2011-2022 走看看