
Numpy 学习之矩阵、函数、二元运算及数组读写
发布日期:2021-05-08 06:30:48
浏览次数:23
分类:精选文章
本文共 2530 字,大约阅读时间需要 8 分钟。
矩阵
# --*--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 npimport 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) / ysinc1 = 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)
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月16日 00时04分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
linux下同一个动态库名为何辣么多的.so文件
2021-05-09
SQL联表的方式(逗号, Left Join, Right Join)
2021-05-09
牛客网输入输出举例
2021-05-09
字符串初始化时的注意点
2021-05-09
软考相关试题
2021-05-09
顺序表的操作
2021-05-09
常量表达式
2021-05-09
POD类型
2021-05-09
const与常量,傻傻分不清楚~
2021-05-09
Head First设计模式——迭代器模式
2021-05-09
MongoDB版本及存储引擎区别
2021-05-09
shell echo单行和多行文字定向写入到文件中
2021-05-09
AtCoder Beginner Contest 100 题解
2021-05-09
【数据结构】可持久化线段树初步
2021-05-09
后缀树
2021-05-09
Java高性能编程之CAS与ABA及解决方法
2021-05-09
从BIO到Netty的演变
2021-05-09
《算法导论》第二章笔记
2021-05-09
HTML节点操作
2021-05-09
HTML5新特性
2021-05-09