zoukankan      html  css  js  c++  java
  • NumPy

    shape:返回 w h

    data = np.array([[1, 2],
                     [3, 4]])
    
    shape = data.shape
    print(shape)        # (2, 2)

    size:返回 w x h

    print(np.ones((3, 4)).size)    # 12

    flatten and ravel 

    二者都是把数据 展开,拉成一维,区别在于 flatten 类似于 深拷贝,ravel 类似于 浅拷贝

    data = np.array([[1, 2],
                     [3, 4]])
    
    ################# 展开 #################
    ######### flatten #########
    ### flatten 类似于深拷贝,改变 展开后的 值 不会影响 原值
    data1 = data.flatten()
    print(data1)        # [1 2 3 4]
    
    data2 = data.flatten('F')
    print(data2)        # [1 3 2 4]
    
    data3 = data.flatten('C')   ### 默认为 C
    print(data3)        # [1 2 3 4]
    
    data4 = np.reshape(data, (4, ))  ### 等价
    print(data4)        # [1 2 3 4]
    
    ### vs ravel
    data3[1] = 1000
    print(data3)        # [   1 1000    3    4]
    print(data)         # [[1 2]        ### 原值没变
                        # [3 4]]
    
    ######### ravel #########
    ### reval 类似于浅拷贝,改变 展开后 的值 会影响 原值
    ### reval 也有 F C 参数
    data_new = data.ravel()
    print('data_new is', data_new)      # data_new is [1 2 3 4]
    
    ### vs flatten
    data_new[1] = 963
    print(data_new)     # [  1 963   3   4]
    print(data)         # [[  1 963]        ### 原值变了
                        # [  3   4]]

    reshape:形变

    可以实现 flatten 效果

    data = np.array([[1, 2],
                     [3, 4]])
    data4 = np.reshape(data, (4, )) ### 等价 print(data4) # [1 2 3 4]

    参考资料:

    https://blog.csdn.net/liuweiyuxiang/article/details/78220080   numpy的ravel() 和 flatten()函数

  • 相关阅读:
    外观模式
    享元模式
    c#中的抽象类和接口
    装饰者模式
    组合模式
    适配器模式
    springboot 源码篇002## web层自动装配部分源码
    springboot 源码篇002## 自动装配原理
    springboot 源码篇 01
    shell 脚本基础 第二篇
  • 原文地址:https://www.cnblogs.com/yanshw/p/12394600.html
Copyright © 2011-2022 走看看