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.        ]]
  • 相关阅读:
    卫星时间同步装置的安装及售后
    windowsU盘重装系统:操作流程
    vue安装正确流程
    win10以太网未识别的网络
    [UnityShader]unity中2D Sprite显示阴影和接受阴影
    [UnityShader]说厌了的遮挡显示
    [Unity]利用Mesh绘制简单的可被遮挡,可以探测的攻击指示器
    ConcurrentHashMap源码解读
    Vector底层原理
    LinkedList集合底层原理
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/14072875.html
Copyright © 2011-2022 走看看