zoukankan      html  css  js  c++  java
  • 03-numpy广播和迭代器遍历

    一、广播

    import numpy as np
    a=np.array([1,3,5,7])
    b=np.array([2,4,6,8])
    print(a+b)
    print(a-b)
    print(a*b)#不是矩阵乘法而是两两相成
    print(a/b)
    
    a=np.array([[1,3,5,7],[2,4,6,8]])
    c=np.array([10,20,30,40])#宽度相同就可以进行运算,多的数运算少的数
    print(a+c)
    

     

    二、迭代器遍历等

    import numpy as np
    #1.迭代器遍历
    a=np.arange(12)
    a=a.reshape(3,4)
    for x in np.nditer(a,order="F"):#遍历元素,与矩阵shape无关
        print(x)
    print(a.T,"
    --------------------")#矩阵转置
    
    #2.copy+C、F风格遍历
    b=np.arange(12)
    b=b.reshape(2,6)
    c=b.copy(order="C")#C风格,从左往右,从上往下遍历
    for x in np.nditer(c):
        print(x)
    
    d=b.copy(order="F")#F风格,从上往下,从左往右遍历
    for x in np.nditer(d):
        print(x)
    
    #3.权限改为可写入
    e=np.arange(12)
    e=e.reshape(2,6)
    for x in np.nditer(e):
        x=10
        print(x)#这种形式不会改变原来的数组
    
    for x in np.nditer(e,op_flags=["readwrite"]):#权限改为可写入
        x[...]=2*x
        print(e)
    
    #4.flags
    f=np.arange(12)
    f=f.reshape(2,6)
    for x in np.nditer(a,flags=['external_loop']):#把元素当成一维数组打印
        print(x)
    for x in np.nditer(a,flags=['c_index']):  print(x)#C风格打印
    for x in np.nditer(a, flags=['f_index']):  print(x)  #F风格打印
    
    #5.可广播的,前提列数相同
    i=np.arange([0,2,4,6,8,10],[12,14,16,18,20,22])
    j=np.arange([1,1,1,1,1,1])
    for x,y in np.nditer([a,b]):
        print(x,y)
    

      

  • 相关阅读:
    spring整合activemq发送MQ消息[Topic模式]实例
    Activemq消息持久化
    Activemq消息类型
    spring整合activemq发送MQ消息[queue模式]实例
    activemq安装与简单消息发送接收实例
    metaq安装实例
    持续集成工具Hudson安装实例
    nexus安装实例
    sonar的安装与代码质量检测实例
    dubbo发布web服务实例
  • 原文地址:https://www.cnblogs.com/wcyMiracle/p/12420511.html
Copyright © 2011-2022 走看看