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])
    • 布尔索引可以使用逻辑运算符 & 合 |
    • 也可以使用<  <=  >  >=   = !=

    神奇索引

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

    数组转置与换轴

    针对二维

  • 相关阅读:
    HttpResponse对象、JsonResponse、StreamingHttpResponse、FileResponse
    for循环
    字符串功能
    (二)第一个Spring Boot工程
    (一)安装Docker和Kubernetes
    如何解决CHM打开乱码的问题
    [译]PyUnit—Python单元测试框架(1)
    正则表达式
    Java开发心得
    Shell获取文件后缀名
  • 原文地址:https://www.cnblogs.com/qianslup/p/11160896.html
Copyright © 2011-2022 走看看