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)
目录
相关文章
|
1月前
|
数据采集 机器学习/深度学习 数据可视化
深入学习NumPy库在数据分析中的应用场景
深入学习NumPy库在数据分析中的应用场景
|
2月前
|
存储 索引 Python
一文掌握python数组numpy的全部用法(零基础学python(二))
一文掌握python数组numpy的全部用法(零基础学python(二))
28 0
|
5天前
|
存储 算法 数据处理
《Numpy 简易速速上手小册》第3章:Numpy 数组操作与变换(2024 最新版)
《Numpy 简易速速上手小册》第3章:Numpy 数组操作与变换(2024 最新版)
28 0
|
5天前
|
存储 数据采集 数据挖掘
《Numpy 简易速速上手小册》第2章:Numpy 数据类型和数组构造(2024 最新版)
《Numpy 简易速速上手小册》第2章:Numpy 数据类型和数组构造(2024 最新版)
24 0
|
7天前
|
存储 机器学习/深度学习 数据挖掘
自定义数据类型与NumPy结构数组详解
【4月更文挑战第17天】本文详细介绍了NumPy中的自定义数据类型和结构数组。通过`numpy.dtype`可创建自定义数据类型,如示例中的包含整数和浮点数字段的数组。结构数组能存储不同类型的元素,每行作为一个记录,包含多个字段。创建结构数组时,定义字段及其数据类型,然后通过字段名进行访问和操作。掌握这些技术能提升数据处理效率和灵活性,尤其在科学计算和数据分析领域。
|
7天前
|
机器学习/深度学习 数据挖掘 Python
线性代数运算在NumPy中的实现
【4月更文挑战第17天】本文介绍了NumPy在Python中实现线性代数运算的方法,包括使用`ndarray`创建向量和矩阵,矩阵的转置,矩阵乘法,计算特征值和特征向量,解线性方程组,以及计算行列式和逆矩阵。通过NumPy,科学家和数据分析师能更高效地进行科学计算和数据分析。
|
7天前
|
搜索推荐 数据挖掘 数据处理
NumPy数组统计与排序方法全览
【4月更文挑战第17天】本文介绍了NumPy在Python中的数组统计和排序功能。主要包括计算平均值、标准差和方差的`np.mean()`, `np.std()`, `np.var()`方法,以及求最大值、最小值、百分位数的功能。在排序方面,讲解了基本排序的`np.sort()`,获取排序索引的`np.argsort()`,逆序排序和随机排序的方法。这些工具对于数据分析和科学计算十分实用,能有效提升数据处理效率。
|
7天前
|
存储 数据处理 Python
NumPy数组运算:元素级与广播机制剖析
【4月更文挑战第17天】NumPy是Python数值计算库,提供元素级运算和广播机制。元素级运算针对数组每个元素单独计算,如加法、减法等;广播机制允许不同形状数组间运算,通过扩展小数组形状匹配大数组。了解这两点能帮助更好地运用NumPy进行数值计算和数据处理。
|
7天前
|
存储 索引 Python
深入解析NumPy数组的形状与重塑
【4月更文挑战第17天】本文深入解析了NumPy数组的形状和重塑。数组形状是表示数组维度和大小的元组,可通过`shape`属性获取。重塑允许改变数组形状而不改数据,需保证元素总数不变。`reshape`方法用于重塑,其中`-1`可让NumPy自动计算尺寸。注意重塑遵循元素总数相等、仅一次`-1`、内存存储顺序及返回新数组的原则。理解和掌握这些概念对高效使用NumPy处理多维数组至关重要。
|
2月前
|
C++ 索引 Python
Python Numpy入门基础(二)数组操作
Python Numpy入门基础(二)数组操作
25 0