zoukankan      html  css  js  c++  java
  • python numpy和矩阵

     

     2、numpy数据选取

    lst=[[1, 2, 3], [4, 5, 6]]
    np.array(lst)[:-1]
    Out[32]: array([[1, 2, 3]])
    np.array(lst)[:,:-1]
    Out[33]: 
    array([[1, 2],
           [4, 5]])

    1、Python中numpy数组的拼接、合并

    https://blog.csdn.net/qq_39516859/article/details/80666070

    import numpy as np
    #创建ndarray,array为数组,ndarray为n维数组 即 n dimension array
    # <class 'numpy.ndarray'>
    a=np.array([1,2,3]);print(a,type(a))
    #numpy中数组,同一个数组中所有元素必须为同一个类型
    #均为字符串类型
    data=np.array([1,2,'a']);print(data)
    data=np.mat(data);print(data)

    #数组行列的变换,即转置
    # x*y -->> y*x
    data=[[1,2],[3,4]]
    new_data=np.array(data).transpose();print(new_data)

    #1*2*3 -->> 3*2*1
    data=[[[1,2,3],[4,5,6]]]
    new_data=np.array(data).transpose();print(new_data)

    #1*2*3 -->>1*3*2
    new_data=np.array([i.transpose() for i in np.array(data)]);print(new_data)
    #如何向ndarray中添加元素

    #数组中所有数据合并
    data=np.arange(12).reshape((3,4))
    new_data=data.ravel();print(new_data) #1*1 按行合并
    new_data=data.ravel('F');print(new_data) #1*1 按列合并

    #创建矩阵 <class 'numpy.matrixlib.defmatrix.matrix'>
    # ValueError: matrix must be 2-dimensional
    b=np.mat(a);print(b,type(b))
    c=np.mat([[1,2,3]]);print(c,type(c))

    #创建常见矩阵
    #0矩阵、全1矩阵、0-1均匀分布、小于10整数、2-8之间整数、2*2对角线为1矩阵
    data=np.mat(np.zeros((3,3)));print(data)
    data=np.mat(np.ones((2,4)));print(data)
    data=np.mat(np.random.rand(2,2));print(data)
    data=np.mat(np.random.randint((10),size=(3,3)));print(data)
    data=np.mat(np.random.randint(2,8,size=(2,5)));print(data)
    data=np.mat(np.eye(2,2,dtype=int));print(data)

    #常见矩阵运算
    data1=np.mat(np.array([[1,2],[3,4]]))
    data2=np.mat(np.array([[1,1],[1,1]]))
    #矩阵相乘
    data=data1*data2;print(data)
    #矩阵点乘
    data=np.multiply(data1,data2);print(data)
    #矩阵求逆、转置
    data=data1.I;print(data)
    data=data1.T;print(data)

    #数组、矩阵转换为列表
    data=np.array([1,2]).tolist();print(data)
    data=data1.tolist();print(data)

    #矩阵的分隔和合并
    data1=np.mat(np.array([[1,2],[3,4]]))
    new_data=data1[:1,:1];print(new_data)
    #合并、按列合并
    new_data=np.vstack((data1,data1));print(new_data)
    #合并、按行合并
    new_data=np.hstack((data1,data1));print(new_data)

    #计算每一列、每一行的和
    new_data=data1.sum(axis=0);print(new_data) #列和 1*2矩阵
    new_data=data1.sum(axis=1);print(new_data) #行和 2*1矩阵
    #计算第二行所有列和,得到一个数字
    new_data=np.sum(data1[1,:]);print(new_data)

    #计算最大、最小值和索引
    new_data=data1.max();print(new_data) #所有元素最大值
    new_data=data1.min();print(new_data) #所有元素最小值
    new_data=np.max(data1,0);print(new_data) #计算所有列最大值
    new_data=np.max(data1,1);print(new_data) #计算所有行最大值
    new_data=np.argmax(data1,0);print(new_data) #计算所有列最大值索引
    new_data=np.argmax(data1,1);print(new_data) #计算所有行最大值索引
  • 相关阅读:
    JS如何判断滚动条是否滚到底部滚动加载瀑布流下拉刷新
    jmeter-22-监控方案-nMon
    jmeter-21-监控方案-severAgent监控
    jmeter-19-慢查询
    jmeter-18-性能监控-Grafana的安装和使用指南(windows)-01
    jmeter-17-性能项目分析与调优实战--场景设置
    jmeter-16-逻辑控制器
    setInterval, setTimeout, requestAnimationFrame 详细说明
    Http代理服务器录制
    康复训练
  • 原文地址:https://www.cnblogs.com/bawu/p/7212521.html
Copyright © 2011-2022 走看看