zoukankan      html  css  js  c++  java
  • numpy

    使用numpy生成数字

    生成的类型是ndarray类型

    t1 = np.array([1,2,3,4,5])
    print(t1,type(t1))        # 类型为ndarray
    
    t2 = np.array(range(10))
    print(t2)
    
    t3 = np.arange(10)   # 相当于array+range
    print(t3,t3.dtype)  # dtype 可以查看数组内的数据类型
    
    t4 = np.arange(10,dtype="f2")   # 制定数据类型
    print(t4.dtype)
    
    t5 = np.array([random.random() for i in range(10)])  # 10个小数
    print(t5)
    
    t6 = np.round(t5,2)  # 取小数后两位
    print(t6)

    查看数组的形状(几行几列)

    一维数组

    a1 = np.arange(12)
    print(a1)
    a1.shape

    二维数组

    a2 = np.array([[1,2,3],[4,5,6]])
    print(a2)
    a2.shape

    三维数组

    a3 = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
    print(a3)
    a3.shape

    改变数组的形状

    b1 = np.arange(12)
    b1.reshape(3,4)   # 将原数组形状变成3行4列的二维数组
    b2 = np.arange(24).reshape((2,3,4))   # 2表示块儿数 (3,4)表示每一块的形状
    print(b2) 
    
    b2.reshape(4,6)  # 将b2变形为4行6列的2维数组    reshape是有返回值的  不会改变b2原来的数据
    
    # 将b2变形为1维数的两种方式
    b2.flatten()
    b2.reshape((24,))  
    数组和数字进行计算(广播机制)
    
    c1 = np.arange(12)
    print(c1)
    
    # (广播机制) 当我们把数组与数字进行计算的时候 它会把计算的过程应用到数组的每一个数字 然后分别计算
    
    c1+2   [ 2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13]
    c1*2   [ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18, 20, 22]
    c1/2   [0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5]
    c1/0   [nan, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf]
    数组与数组之间的计算(形状相同)
    
    c2 = np.arange(24)
    c3 = np.arange(100,124)
    print(c2,c3)
    
    # 当数组中的数据长度相同时
    # 两个数组中的数据一一对应进行计算
    c2+c3   [100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124,
           126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146]
    
    c2*c3   [   0,  101,  204,  309,  416,  525,  636,  749,  864,  981, 1100,
           1221, 1344, 1469, 1596, 1725, 1856, 1989, 2124, 2261, 2400, 2541,
           3 2684, 2829]
    
    c2/c3   [0.        , 0.00990099, 0.01960784, 0.02912621, 0.03846154,
           0.04761905, 0.05660377, 0.06542056, 0.07407407, 0.08256881,
           0.09090909, 0.0990991 , 0.10714286, 0.11504425, 0.12280702,
           0.13043478, 0.13793103, 0.14529915, 0.15254237, 0.15966387,
           0.16666667, 0.17355372, 0.18032787, 0.18699187]
    # 当他们在某一维度形状一样时是可以进行计算的
    n1 = np.arange(12).reshape((4,3))
    n2 = np.arange(4).reshape((4,1))
    print(n1)
    print(n2)
    n1+n2        # n1与n2行数相同
    
    array([[ 0,  1,  2],
           [ 4,  5,  6],
           [ 8,  9, 10],
           [12, 13, 14]])
  • 相关阅读:
    关于Python虚拟环境与包管理你应该知道的事
    你是否真的了解全局解析锁(GIL)
    谈谈装饰器的实现原理
    快速了解Python并发编程的工程实现(下)
    快速了解Python并发编程的工程实现(上)
    简单了解一下事件循环(Event Loop)
    为何你还不懂得如何使用Python协程
    一文搞懂Python可迭代、迭代器和生成器的概念
    源码分析Retrofit请求流程
    一份程序猿单词列表(updating)
  • 原文地址:https://www.cnblogs.com/yongyuandishen/p/14908247.html
Copyright © 2011-2022 走看看