[工业设备]针对计算公式的编写

对一些工业设备常用计算公式实现代码化,便于系统性和批量性完成对基础数据特征值的提取,方便后续进行计算的预估性判断。

例:

 代码实现:

def sy_cal_skewness_index(source):
    """
    计算偏斜度指标
    :param source: 源数据
    :return: 偏斜度指标skewness index
    """
    datas = np.array(source).astype(float)
    s_avg = 0   # 内部(small)总值
    m_avg = 0   # 中间部(middle)总值
    ml_avg = 0  # 中间部(middle)下层(low)总值
    ll_avg = 0  # 最外部(large)下层(low)总值
    for data in datas:
        s_avg += data
    s_avg /= len(source)
    for data in datas:
        m_avg += pow(data - s_avg, 3)
        ml_avg += pow(data - s_avg, 2)
    h_avg = m_avg / (len(source) - 1)
    ll_avg = pow(ml_avg / (len(source) - 1), 3 / 2)
    if ll_avg == 0:
        ll_avg = 0.000000001
    return h_avg / ll_avg

NumPy - 简介

NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。

Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray ,它拥有一些额外的功能。 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包。 这个开源项目有很多贡献者。

NumPy 操作

使用NumPy,开发人员可以执行以下操作:

  • 数组的算数和逻辑运算。

  • 傅立叶变换和用于图形操作的例程。

  • 与线性代数有关的操作。 NumPy 拥有线性代数和随机数生成的内置函数。

NumPy – MatLab 的替代之一

NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用。 这种组合广泛用于替代 MatLab,是一个流行的技术计算平台。 但是,Python 作为 MatLab 的替代方案,现在被视为一种更加现代和完整的编程语言。

NumPy 是开源的,这是它的一个额外的优势。

NumPy - Ndarray 对象

NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型。 它描述相同类型的元素集合。 可以使用基于零的索引访问集合中的项目。

ndarray中的每个元素在内存中使用相同大小的块。 ndarray中的每个元素是数据类型对象的对象(称为 dtype)。

ndarray对象提取的任何元素(通过切片)由一个数组标量类型的 Python 对象表示。 

机器学习算法中大部分都是调用Numpy库来完成基础数值计算的。


使用前先导入Numpy模块

import numpy as np
#或
from numpy import *

1)数组的创建及使用

>>> x=np.array([[1.0,0.0,0.0],[0.,1.,2.]]) #定义了一个二维数组,大小为(2,3)
>>> x
array([[1., 0., 0.],
       [0., 1., 2.]])
>>> x.ndim   #数组维度数
2
>>> x.shape    #数组的维数,返回的格式(n,m),其中n为行数,m为列数
(2, 3)
>>> x.size    #数组元素的总数
6
>>> x.dtype   #数组元素类型
dtype('float64')  #64位浮点型
>>> x.itemsize  #每个元素占有的字节大小
8
>>> x.data    #数组元素的缓冲区
<memory at 0x00000205227DAC18>

还有两种创建序列数组的函数arrange和linspace,和range函数类似,但它们都属于Numpy里面。
arange(a,b,c) 参数分别表示开始值,结束值,步长
linspace(a,b,c) 参数分别表示开始值,结束值,元素数量
还可以调用它们自身的方法reshape()指定形状
 

>>> arange(15).reshape(3,5)
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
>>> arange(10,30,5)
array([10, 15, 20, 25])
>>> arange(0,2,0.3)
array([0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8])
>>> linspace(0,2,9) # 0~2之间生成9个数字
array([0.  , 0.25, 0.5 , 0.75, 1.  , 1.25, 1.5 , 1.75, 2.  ])

高斯分布(正态分布)
np.random.randn(shape):生成对应形状(shape)的高斯分布
np.random.normal(loc, scale, size):生成均值为loc,标准差为scale,形状(shape)为size的高斯分布


均匀分布
np.random.rand(shape):生成对应形状(shape)的均匀分布
np.random.uniform(low, high, size):生成一个从[low, high)中随即采样的,样本数量为size的均匀分布
 

>>> a = np.random.randn(10) # 长度为10的一个一维数组
>>> a
array([ 0.12939473,  0.43128511,  1.20540157,  0.54083603,  0.80768359,
       -1.24217976, -0.9713093 ,  1.43538807, -1.07227227, -1.27176462])
>>> b = np.random.normal(0, 1, (2,4)) # 均值为1,方差为0,形状为(2,4)的二维数组
>>> b
array([[ 0.4132305 , -2.06728849,  1.15189397, -1.11201615],
       [ 0.39955198, -0.89664908, -0.61361683, -0.13166113]])
>>> c = np.random.rand(2,3) # 生成一个形状为(2,3)的均匀分布二维数组
>>> c
array([[0.57091351, 0.39960244, 0.77019683],
       [0.11316102, 0.59354993, 0.37849038]])
>>> d = np.random.uniform(-1,1,10)
>>> d
array([-0.34374858, -0.27026865,  0.27073922, -0.42654097, -0.38736897,
        0.16293278, -0.79578655, -0.04825995,  0.28444576,  0.99118406])

 

关于:
datas = np.array(source).astype(float)

astype函数用于array中数值类型转换

例如:

x = np.array([1, 2, 2.5])
x.astype(int)
输出:

array([1, 2, 2])

又例如:

arr = np.arange((10))
print(arr, arr.dtype, sep="\n")

[0 1 2 3 4 5 6 7 8 9]
int32    #可以看到,他的数据类型为 int32


arr = arr.astype("float32")
print(arr, arr.dtype, sep="\n")

[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
float32    #可以看到数据类型转换成了   float32

常用关键字:abs(取绝对值)

abs 函数是 Python 内置函数,主要作用就是计算数字的绝对值!

'''
参数x:只能为有符号的数字,例如:0,5,6.3,-78……
返回值:直接取当前数字的绝对值,必然大于等于0,不会小于0;
'''
abs(x)

总结:

学会利用有效关键字。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值