zoukankan      html  css  js  c++  java
  • NumPy进阶

    数组算术

    任何两个等尺寸数组之间的算术操作都应用了逐元素操作的方式。

    arr1 = np.array([[1,2,3],[4,5,6]])
    arr2 = np.array([[4,2,1],[7,2,4]])
    print(arr1 + arr2)
    print('---分隔符---')
    print(1/arr1)
    print('---分隔符---')
    print(arr1 > arr2)

    索引与切片

    list1 = list(range(10))
    array1 = np.array(list_1)
    list1_slice = list1[5:8]
    array1_slice = array1[5:8]
    array1_copy = array1.copy()
    list1_slice[1] = 12
    array1_slice[1] = 12
    array1_copy[-1] = 20
    print(list1)     #out:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    print(array1)    #out:[ 0  1  2  3  4  8 12  7  8  9]
    • 数组的切片是原数组的视图,数据并非被复制,任何对于视图的修改都会反映到数组上。
    • 列表的切片则是复制原列表,在切片中更改不会影响原列表。
    • 想要数组的切片的拷贝,可以显示的复制该数组,例如array1_copy = array1.copy()

    多维数组

    arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
    print(arr[1])           #out:[4 5 6]
    print(arr[1][1])        #out:5
    print(arr[1,1])         #out:5
    print(arr[1:,1])        #out:[5 8]
    print(arr[1:,1:])       
    #[[5 6]
    # [8 9]]

    布尔索引

    arr_b = np.array([False,True,True,False])
    arr_a = np.arange(4)
    arr_a[arr_b]           #out:array([1, 2])
    #取反操作
    arr_a[~arr_b]          #out:array([0, 3])
    • 布尔索引可以使用逻辑运算符 & 合 |
    • 也可以使用<  <=  >  >=   = !=

    神奇索引

    • 神奇索引与切片不同,总是将数据复制到一个新的数组中

    数组转置与换轴

    针对二维

  • 相关阅读:
    记下mongoose(转载)
    vue vue-cli中引入全局less变量的方式
    单标签不支持 伪元素
    删除tppabs,href="javascript:if(confirm)...",、/*tpa=http://...
    系统字体放大导致rem布局错乱,解决方案,已通过测试
    IE条件注释
    hbase部署经验与坑总结
    ubuntu安装mysql 5.7
    静态代理和动态代理
    单例模式
  • 原文地址:https://www.cnblogs.com/qianslup/p/11160896.html
Copyright © 2011-2022 走看看