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

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

Python 与 NumPy 实用技巧

1. 从文件读取数据

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

  • 默认读取方式

    import numpy as np
    filepath = 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 np
    filepath = 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 np
a = [[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 np
a = 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/

你可能感兴趣的文章
ORA-01207:文件比控制文件更新 - 旧的控制文件
查看>>
ORA-01795: 列表中的最大表达式数为 1000
查看>>
ORA-06575: 程序包或函数 NO_VM_DROP_PROC 处于无效状态
查看>>
ORA-08102的错误
查看>>
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor异常
查看>>
ORA-12514: TNS:listener does not currently know of service问题原因
查看>>
ora-12541:tns:no listener
查看>>
【docker知识】联合文件系统(unionFS)原理
查看>>
ORACEL学习--理解over()函数
查看>>
oracle 10g crs命令,Oracle 10g CRS安装问题解决一例
查看>>
Oracle 10g ORA-01034: ORACLE not available 错误
查看>>
oracle 10g的安装配置
查看>>
Oracle 11.2.0.4 x64 RAC修改public/private/vip/scan地址
查看>>
Oracle 11G INDEX FULL SCAN 和 INDEX FAST FULL SCAN 对比分析
查看>>
Oracle 11g UNDO表空间备份增强
查看>>
Oracle 11g 使用RMAN备份数据库
查看>>
Oracle 11g 单实例安装文档
查看>>
Oracle 11g 操作ASM权限问题
查看>>
Oracle 11g 数据类型
查看>>
Oracle 11g 编译使用BBED
查看>>