numpy

作者: 贝克街的猫大哥呀 | 来源:发表于2017-12-11 15:37 被阅读0次

    最基本用法:

    import numpy as np

    araay=np.array([[1,2,3],

    [4,5,6],

    [7,8,9]])

    print(araay)

    print(araay.ndim)  #维度

    print(araay.shape) #几行几列

    print(araay.size) #元素个数

    print(araay.dtype) #元素类型

    注意,np.array()括号里面,是二维的写法,如果写成,np.array([1,2,3]),这表示是一个一维数组,不是矩阵。

    a = np.array([1,2,3,4.5],dtype=np.int) #设置数据元为int型,相应的还有float ,int32,int64,float32,float64

    print(a)

    # #如果没有dtype定义,会发现打印出来的b都有. 变成了float

    b = np.zeros( (3,3),dtype=np.int64) #相应的,还有,np.ones

    print(b)

    # #range排序生成矩阵 参数的意思分别为 开始值 结束值 间隔值

    d=np.arange(1,10,1).reshape((3,3))

    print(d)

    # #线性排序生成矩阵 参数的意思分别为 开始值 结束值 共几个数据

    e=np.linspace(0,10,5)

    print(e)

    简单的加减运算 与 平方

    f=np.array([10,20,30,40])

    g=np.arange(4)

    print(f,g)

    h=f-g

    print(h)

    #平方 用**2

    f=np.array([1,2,3,4])

    print(f**2)

    元素中的大小 这样简单粗暴的比较返回布尔值,这里会返回4个false

    f=np.array([1,2,3,4])

    print(f)

    print(f>4)

    NP的乘法 一种是矩阵中每个数相乘,一种就是矩阵的乘法!

    m=np.array([[1,2,3],

    [2,2,2]])

    n=np.ones((2,3))

    print(m*n)

    o=np.ones((3,2))

    print(m.dot(o))  #这是矩阵的乘法

    生成一个随机矩阵 且生成的数值都是在0-1之间 求和,最值

    g=np.random.random((3,2))

    print(g)

    print(np.max(g))

    print(np.min(g))

    print(np.sum(g))

    print(np.max(g,axis=0))  #aixs表示维度,0是列,1是行 这表示列的最大值 故每一列,都会返回一个值

    求最值索引以及平均值! 平均值为mean,arange表示2-14之间形成一个有12个元素的矩阵

    p=np.arange(2,14).reshape(3,4)

    print(p)

    print(np.argmax(p))

    print(np.argmin(p))

    print(np.mean(p))

    print(np.cumsum(p))  #表示累加,有点像fblg数列 ,第n个位置的值=前n个数的和

    排序 转置 clip意思是,将矩阵中,所有小于3,大于9的数,都置为3或者9. 只保留中间的数

    p=np.arange(13,1,-1).reshape(3,4)

    print(p)

    print(np.sort(p))  #只是进行每一行,行内的排序

    print(p.T) #转置

    print(np.clip(p,3,9))

    print(np.mean(p,axis=0))  #表示每列的平均数

    索引

    a=np.arange(3,15).reshape((3,4))

    print(a)

    print(a[0]) #表示第0行

    print(a[0,:]) #也可以用:来表示所有,这里就是表示,所有列

    print(a[0,1:3]) #表示第0行,第1列,第2列的元素输出

    for循环

    a=np.arange(3,15).reshape((3,4))

    print(a)

    for each in a:  #默认是行,故这里每一个each就是每一行的集合

    print(each)

    for each in a.T:  #如果要输出列的话,就直接用转置就可以了!

    print(each)

    for each in a.flat:  #每个元素,逐个输出

    print(each)

    矩阵合并!

    a=np.array([1,1,1])

    b=np.array([2,2,2])

    print(np.vstack((a,b)))  #vstack表示vertical stack 垂直

    print(np.hstack((a,b)))  #同理,这就是水平堆积

    矩阵拆分!

    a=np.arange(3,19).reshape(4,4)

    print(a)

    print(np.split(a,2,axis=0))  #按行来拆分 这里0表示行了

    深浅拷贝  跟C语言

    a=np.arange(1,5)

    print(a)

    b=a    #浅拷贝,就是说,内存地址也一并拷贝过去了

    print(b is a)

    a[0]=8

    print(b)

    c=a.copy()  #只拷贝值,不拷贝内存地址! 就是说,C有一块新的内存地址

    a[0]=20

    print(a)

    print(c)

    相关文章

      网友评论

          本文标题:numpy

          本文链接:https://www.haomeiwen.com/subject/mdhiixtx.html