numpy快捷使用

 自己写的一个numpys库,方便考试使用行列式,矩阵。。。。

import numpy as np
import re
import sys

#=======
#获得数组(数组字符串)
def huodeshuzu(shuzustr):
    lists = re.findall(r'-?\d+\.?\d*', shuzustr)
    return [float(i) for i in lists]

#获得n阶行列式(数组字符串,几阶)
def huodehanglieshi(shuzustr,jijie):
    try:
        lists = huodeshuzu(shuzustr)
        if len(lists) == 0:
            print('找不到一个数值')
            raise Exception
        if jijie ** 2 != len(lists):
            print('输入的元素不是:',jijie ** 2,'个元素,记得是方阵才能求行列式')
        else:
            lists = np.array(lists).reshape(jijie,jijie)
            return lists
    except Exception as e:
        sys.exit(0)

#获得行列式的值(行列式字符串,几阶层)
def huodehanglieshideZhi(shuzustr,jijie):
    print(huodehanglieshi(shuzustr,jijie))
    res = np.linalg.det(huodehanglieshi(shuzustr,jijie))
    print('行列式的值为:%.4f'%res)
    return res

# 获得行列式的转置(行列式)
def huodehanglieshideZhuanZhi(hanglieshi):
    print('行列式的转置为:\n' + hanglieshi.T)
    return hanglieshi.T

#============================矩阵
#获得矩阵(矩阵字符串,行数,列数)
def huodejuzhen(juzhenstr,hang,lie):
    try:
        lists = huodeshuzu(juzhenstr)
        if len(lists) == 0:
            print('找不到一个数值')
            raise Exception
        if hang * lie != len(lists):
            print('输入的元素不是:',hang * lie,'个元素')
        else:
            lists = np.array(lists).reshape(hang,lie)
            print('获得矩阵:\n',lists)
            return np.matrix(lists)
    except Exception as e:
        sys.exit(0)
#获得矩阵的逆
def huodejuzhendeNi(juzhen):
    print('--矩阵的逆为:\n',juzhen.I)
    return juzhen.I
#获得矩阵的转置
def huodejuzhendeZhuanZhi(juzhen):
    print('--矩阵的转置为:\n', juzhen.T)
    return juzhen.T
#获得矩阵的乘积(矩阵A,矩阵B)
def huodejuzhendeChengJi(juzhenA,juzhenB):
    res = np.dot(juzhenA,juzhenB)
    print('矩阵的乘积为:\n',res)
    return res
#获得矩阵的值(表达式字符串)-->例子:2*A*B-2A,不能有转置
def jisuanjuzhendeZhi(shizistr):
    print(shizistr + '的值为:\n',eval(shizistr))
#获得单位矩阵(几阶)
def huodeDanWeijuzhen(jijie):
    res = np.eye(jijie)
    print('获得单位矩阵:\n',res)
    return res

def huodejuzhendeGongShi():
    str = '''
1、 A的逆的逆还是A
2、 A的转置的逆是A的逆的转置
3、 (数字a*A)的逆 等于 (1/a) * A的逆
4、 A*B的逆  等于  B的逆*A的逆
5、 A*B的转置  等于 B的转置*A的转置

6、 (AB)的行列式  等于 A的行列式*B的行列式
7、 A*A的逆 等于 单位矩阵E
8、 A的逆的行列式  等于  A的行列式分之1
    
    '''
    print(str)

if __name__ == '__main__':
    # print(huodehanglieshi('1,2,3,4,5,5',2,3))
    # huodehanglieshidezhi('1 2 3 4 4 5 56 3 32 2 3 1 2 3 4 5',4,4)
    # huodehanglieshidezhi('ssss',3)
    # juzhen = huodejuzhen('1 2 3 4 4 5 56 3 32 2 3 1 2 3 4 5',4,4)
    # print(juzhen)
    # huodejuzhendeNi(juzhen)
    # huodejuzhendeZhuanZhi(juzhen)

    # a = np.matrix(np.array([[1,2,3]]))
    # print(a,type(a))
    # A = huodejuzhen('1,2,3,4,5,6,7,8,9',3,3)
    # B = huodejuzhen('4,5,6,34,5,2,2,4,5',3,3)
    # huodejuzhendeChengJi(A,B)

    # A = huodejuzhen('1 1 1 1 1 -1 1 -1 1',3,3)
    # B = huodejuzhen('1 2 3 -1 -2 4 0 5 1',3,3)
    # # # print(3*A*B-2*A)
    # jisuanjuzhendeZhi('A*B*3-2*A')
    # huodeDanWeijuzhen(5)
    # huodejuzhendeGongShi()
    pass

 

### 回答1: 使用 NumPy 处理图片数组的一个简单示例如下所示: ```python import numpy as np from PIL import Image # 读取图片 im = Image.open('image.jpg') # 将图片转换为 NumPy 数组 im_arr = np.array(im) # 处理图片数组,例如将所有像素值乘以 2 im_arr_processed = im_arr * 2 # 将处理后的图片数组转换回图片 im_processed = Image.fromarray(im_arr_processed) # 保存图片 im_processed.save('image_processed.jpg') ``` 在上面的示例中,我们使用了 Python 库 PIL (Python Imaging Library) 来读取图片,然后将图片转换为 NumPy 数组,进行处理后再将数组转换回图片并保存。你可以使用 NumPy 函数来处理图片数组,例如使用 `np.max()` 或 `np.mean()` 计算图片数组的最大值或平均值。 ### 回答2: NumPy是一个功能强大的Python库,用于对图像进行处理和分析。它提供了一系列用于操作数组的函数和方法,可以方便地对图像进行处理。 NumPy中最常用的功能之一是图像数组的读取和保存。可以使用NumPy的`load()`函数读取图像文件并将其存储为一个numpy数组。例如,可以使用以下代码读取名为`image.jpg`的图像文件: ``` import numpy as np image_array = np.load('image.jpg') ``` 加载图像后,可以使用NumPy的各种函数和方法对图像数组进行处理。例如,可以使用`shape`属性来获得图像数组的尺寸,使用`mean()`函数计算图像像素的平均值,使用`max()`和`min()`函数找到图像的最大和最小像素值等等。 此外,NumPy还提供了许多用于图像处理的函数,如调整亮度、对比度、颜色空间转换等。例如,可以使用`clip()`函数对图像进行亮度调整,使用`cv2.cvtColor()`函数进行颜色空间转换,使用`corrcoef()`函数计算图像的相关系数等等。 另外,NumPy还可以与其他图像处理库(如OpenCV)配合使用,以提供更丰富的图像处理功能。例如,可以使用NumPy对图像进行预处理(如裁剪、缩放等),然后使用OpenCV进行图像增强、滤波等处理。 总之,使用NumPy可以方便地对图像进行数组操作和处理。它提供了丰富的函数和方法,可以用于图像的读取、保存、处理和分析,使图像处理变得更加简单快捷
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值