博客
关于我
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/

你可能感兴趣的文章
mysql的 if else , case when then, IFNULL
查看>>
MySQL的10种常用数据类型
查看>>
mysql的cast函数
查看>>
MySql的CRUD(增、删、改、查)操作
查看>>
MySQL的DATE_FORMAT()函数将Date转为字符串
查看>>
MySql的Delete、Truncate、Drop分析
查看>>
MySQL的Geometry数据处理之WKT方案
查看>>
mysql的grant用法
查看>>
Mysql的InnoDB引擎的表锁与行锁
查看>>
mysql的InnoDB引擎索引为什么使用B+Tree
查看>>
MySQL的InnoDB默认隔离级别为 Repeatable read(可重复读)为啥能解决幻读问题?
查看>>
MySQL的insert-on-duplicate语句详解
查看>>
mysql的logrotate脚本
查看>>
MySQL的on duplicate key update 的使用
查看>>
MySQL的Replace用法详解
查看>>
mysql的root用户无法建库的问题
查看>>
mysql的sql_mode参数
查看>>
MySQL的sql_mode模式说明及设置
查看>>
mysql的sql执行计划详解
查看>>
mysql的sql语句基本练习
查看>>