博客
关于我
python的numpy-机器学习相关
阅读量:513 次
发布时间:2019-03-07

本文共 2000 字,大约阅读时间需要 6 分钟。

Python 与 NumPy 实用技巧

1. 从文件读取数据

使用 np.loadtxt 函数可以从文本文件中读取数据,默认以逗号分隔。这里展示了两种读取方法:

  • 默认读取方式

    import numpy as npfilepath = open('E:/1.txt')dataset = np.loadtxt(filepath, delimiter=',', usecols=(0, 1))Xdata = dataset[:, 0]  # 读取第一列Ydata = dataset[:, 1]  # 读取第二列

    结果:

    dataset:[[1.11, 3.23], [2.  , 2.  ], [3.  , 3.  ]]Xdata:[1.11, 2.  , 3.  ]
  • 使用 unpack=True

    import numpy as npfilepath = open('E:/1.txt')dataset = np.loadtxt(filepath, delimiter=',', usecols=(0, 1), unpack=True)Xdata = dataset[0]    # 读取第一列Ydata = dataset[1]    # 读取第二列

    结果:

    dataset:[[1.11, 2.  ], [3.23, 2.  ]]Xdata:[1.11, 2.  , 3.  ]

2. 矩阵运算与统计函数

矩阵点乘
import numpy as npa = [[1,2,3],     [1,3,4]]b = [[2,1,1],     [3,1,1]]np.dot(a, np.transpose(b))

结果:

array([[7, 8],       [9, 10]])
标准差计算
  • 全局标准差:
    np.std(a, axis=0)

    结果:

    array([0. , 0.5, 0.5])
  • 列标准差:
    np.std(a, axis=1)

    结果:

    array([2. , 3. ])
  • 行标准差:
    np.std(a, axis=2)

    结果:

    array([2.5])
均值计算
  • 全局均值:
    np.mean(a)

    结果:

    1.1055415967851334
  • 列均值:
    np.mean(a, axis=0)

    结果:

    array([1. , 2.5, 3.5])
加减乘除
import numpy as npa = np.array([1, 2, 3])b = np.array([2, 1, 4])c = a + b     # 加法d = a - b     # 减法e = a * b     # 乘法f = a / b     # 除法

结果:

  • c: [3, 3, 7]
  • d: [ -1, 1, -1]
  • e: [2, 6, 12]
  • f: [0.5, 0.5, 1.]

3. 样本等分

np.linspace 用于生成均匀分布的数列,适合绘图或数据采样。

-默认值-:

np.linspace(2.0, 3.0, num=5)

结果:

array([2.  , 2.25, 2.5 , 2.75, 3. ])
  • 不包含终点值-:
    np.linspace(2.0, 3.0, num=5, endpoint=False)

    结果:

    array([2. , 2.2, 2.4, 2.6, 2.8])
  • Returns step size-:
    np.linspace(2.0, 3.0, num=5, retstep=True)

    结果:

    (array([2.  , 2.25, 2.5 , 2.75, 3.  ]), 0.25)

4. 创建零矩阵

通过 np.zeros() 创建与矩阵 a 大小相同的全零矩阵。

a = np.array([[1,2,3],              [4,5,6]])b = np.zeros(a.shape)

结果:

b:[[0. , 0. , 0. ], [0. , 0. , 0. ]]

5. logspace

用于生成等比数列,常用于对数值转换。

np.logspace(1, 10, 10)

结果:

array([1.e+01, 1.e+02, 1.e+03, 1.e+04, 1.e+05, 1.e+06, 1.e+07, 1.e+08,       1.e+09, 1.e+10])

6. arange

range 类似,用于生成等差数列,常用于绘图索引。

np.arange(1, 5)

结果:

array([1, 2, 3, 4])

7. 矩阵转置

使用 T 属性。

a = np.array([[1,2],             [3,4]])a.T   # 转置矩阵

结果:

array([[1, 3],       [2, 4]])

转载地址:http://wygjz.baihongyu.com/

你可能感兴趣的文章
Mysql8.0以上重置初始密码的方法
查看>>
mysql8.0新特性-自增变量的持久化
查看>>
Mysql8.0注意url变更写法
查看>>
Mysql8.0的特性
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
MySQL8修改密码的方法
查看>>
Mysql8在Centos上安装后忘记root密码如何重新设置
查看>>
Mysql8在Windows上离线安装时忘记root密码
查看>>
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
查看>>
mysql8的安装与卸载
查看>>
MySQL8,体验不一样的安装方式!
查看>>
MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
查看>>
Mysql: 对换(替换)两条记录的同一个字段值
查看>>
mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
查看>>
MYSQL:基础——3N范式的表结构设计
查看>>
MYSQL:基础——触发器
查看>>
Mysql:连接报错“closing inbound before receiving peer‘s close_notify”
查看>>
mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
查看>>
mysqldump 参数--lock-tables浅析
查看>>
mysqldump 导出中文乱码
查看>>