Numpy 学习之矩阵、函数、二元运算及数组读写

简介: Numpy 学习之矩阵、函数、二元运算及数组读写

矩阵

# --*--coding:utf-8--*--
import numpy as np
"""
矩阵
"""
# mat(array),将二维数组转化为矩阵
a = np.array([[1,2,4],
              [4, 5, 6],
              [8, 9, 10]])
print('matrix:\n', np.mat(a))
print(np.mat('1,2,4;5,6,9'))
# matrix.I,表示matrix的逆矩阵
print(np.mat(a).I)
# 利用分块创造新矩阵
a = np.array([[4, 8],
              [5, 19]])
b = np.array([[11, 89],
              [49, 29]])
print(np.bmat('a, b;b, a'))

函数

# --*--coding:utf-8--*--
import numpy as np
import matplotlib.pyplot as plt
"""
一般函数
"""
# 正无穷
print('正无穷:', np.inf)
# 负无穷
print('负无穷:', -np.inf)
# 非法值
print('非法值:', np.nan)
"""
向量化函数
"""
# vectorize(function_name),将函数向量化,产生一个新函数
x = np.array([3, 54, 89])
def sinc(x):
    if x == 0.0:
        return 1.0
    else:
        y = np.pi * x
        return np.sin(y) / y
sinc1 = np.vectorize(sinc)
print('向量化:', sinc1(x))
x = np.linspace(-10, 10, 50)
plt.plot(x, sinc1(x))
plt.show()

二元运算

四则运算对应函数

运算符 对应函数

a + b add(a, b)

a - b subtract(a, b)

a * b multiply(a, b)

a / b divide(a, b)

a ** b power(a, b)

a % b remainder(a,b)

比较与逻辑运算

运算符 对应函数

== equal

!= not_equal

> greater

>= greater_equal

< less

<= less_equal

& bitwise_and

/ bitwise_or

^ bitwise_xor

~ invert

>> right_shift

<< left_shift

ufunc对象


# --*--coding:utf-8--*--
import numpy as np
"""
ufunc对象
"""
# reduce方法
# op.reduce(a),将op沿着某个轴应用,使得数组啊的维数降低一维
a = np.array([3, 4, 5, 6, 9])
print(np.add.reduce(a))
print(np.logical_or.reduce(a))
# accumulate方法
# op.accumulate(a),看成保存reduce每一步的结果所形成的数组
print(np.add.accumulate(a))
print(np.logical_or.accumulate(a))
# reduceat方法
# op.reduceat(a, indices),将操作符运用到指定的下标上,返回一个与indices大小相同的数组
indices = np.array([0,3])
print(np.add.reduceat(a, indices))
# outer方法
# op.outer(a, b),对a中每个元素,将op运用到它与b的每一个元素上所得到的结果
b = np.array([2, 3, 4])
print(np.add.outer(a, b))
print(np.logical_or.outer(a, b))

数组读写

# --*--coding:utf-8--*--
import numpy as np
""" 
数组读写
"""
# 空格(制表符)分隔的文本
data = []
with open('file.txt', 'r') as file:
    for line in file:
        fileds = line.split()
        row_data = [float(x) for x in fileds]
        data.append(row_data)
data = np.array(data)
print('空格分隔:', data)
# 逗号分隔文件
data = np.loadtxt('file1.txt', delimiter=',')
print('逗号分隔:', data)
# 数组写入文件
np.savetxt('out.txt', data)
with open('out.txt') as f:
    for line in f:
        print(line)
"""
Numpy二进制格式
保存的方法:
    1、save(file, arr) 保存单个数组,.npy 格式
    2、savez(file, *args, **kwds) 保存多个数组,无压缩的 .npz 格式
    3、savez_compressed(file, *args, **kwds) 保存多个数组,有压缩的 .npz 格式
读取的方法:
    load(file, mmap_mode=None) 对于 .npy,返回保存的数组,对于 .npz,返回一个{名称-数组}对组成的字典
"""
# 单个数组的读写
a = np.array([[1,2,4],[9,3,0]])
np.save('file2.txt', a)
# 保存多个数组
b = np.array(100)
np.savez('data.npz', a, b)
目录
相关文章
|
6天前
|
计算机视觉 Python
PIL图像转换为Numpy数组:技术与案例详解
本文介绍了如何将PIL图像转换为Numpy数组,以便利用Numpy进行数学运算和向量化操作。首先简要介绍了PIL和Numpy的基本功能,然后详细说明了转换过程,包括导入库、打开图像文件、使用`np.array()`或`np.asarray()`函数进行转换,并通过打印数组形状验证转换结果。最后,通过裁剪、旋转和缩放等案例展示了转换后的应用,以及如何将Numpy数组转换回PIL图像。此外,还介绍了处理base64编码图像的完整流程。
19 4
|
2月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
97 10
|
2月前
|
Python
Numpy学习笔记(四):如何将数组升维、降维和去重
本文介绍了如何使用NumPy库对数组进行升维、降维和去重操作。
57 1
|
2月前
|
Python
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
NumPy库中的`np.concatenate`和`np.append`函数,它们分别用于沿指定轴拼接多个数组以及在指定轴上追加数组元素。
58 0
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
|
2月前
|
Python
使用 NumPy 进行数组操作的示例
使用 NumPy 进行数组操作的示例
43 2
|
2月前
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
122 4
|
3月前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
110 0
|
4月前
|
机器学习/深度学习 数据处理 计算机视觉
NumPy实践宝典:Python高手教你如何轻松玩转数据处理!
【8月更文挑战第22天】NumPy是Python科学计算的核心库,专长于大型数组与矩阵运算,并提供了丰富的数学函数。首先需安装NumPy (`pip install numpy`)。之后可通过创建数组、索引与切片、执行数学与逻辑运算、变换数组形状及类型、计算统计量和进行矩阵运算等操作来实践学习。NumPy的应用范围广泛,从基础的数据处理到图像处理都能胜任,是数据科学领域的必备工具。
66 0
|
1月前
|
存储 数据处理 Python
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第27天】在科学计算和数据分析领域,Python凭借简洁的语法和强大的库支持广受欢迎。NumPy和SciPy作为Python科学计算的两大基石,提供了高效的数据处理和分析工具。NumPy的核心功能是N维数组对象(ndarray),支持高效的大型数据集操作;SciPy则在此基础上提供了线性代数、信号处理、优化和统计分析等多种科学计算工具。结合使用NumPy和SciPy,可以显著提升数据处理和分析的效率,使Python成为科学计算和数据分析的首选语言。
51 3
|
1月前
|
存储 机器学习/深度学习 算法
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第26天】NumPy和SciPy是Python科学计算领域的两大核心库。NumPy提供高效的多维数组对象和丰富的数学函数,而SciPy则在此基础上提供了更多高级的科学计算功能,如数值积分、优化和统计等。两者结合使Python在科学计算中具有极高的效率和广泛的应用。
69 2