Python之Numpy常用操作
Numpy常用操作
文章目录
- Numpy常用操作
- 1.数组初始化
- 2.数组基本运算
- 3.多维数组组合
- 4.数组中查找最大/小索引
- 5.查找符合条件元素索引
- 6.更改数组维度
1.数组初始化
# 生成特定数组
print(np.array([2, 3], dtype=np.int16)) # shape: (, 2)
print(np.zeros((2, 3))) # shape: (2, 3)
print(np.empty((2, 3))) # shape: (2, 3)
print(np.random.random((2, 3))) # shape: (2, 3)# 生成均匀分布数组
# arange(最小值,最大值,步长)(左闭右开)
print(np.arange(1, 10, 2)) # [1 3 5 7 9]
# linspace(最小值,最大值,元素数量)
print(np.linspace(1, 10, 2)) # [ 1. 10.]
2.数组基本运算
a = np.arange(4).reshape(2,2) #[[0 1],[2 3]]
b = np.arange(4, 8).reshape(2, 2) #[[4 5],[6 7]]# '*'矩阵对应位置相乘
print(a*b) #[[ 0 5],[12 21]]# dot表示矩阵乘法
print(np.dot(a, b)) #[[ 6 7],[26 31]]# min、max、sum, axis=0表示按列操作,shape的时候消除行
c = np.arange(12).reshape(3,4) #[[ 0 1 2 3], [ 4 5 6 7],[ 8 9 10 11]]
print(c.sum(axis = 0)) #[12 15 18 21] 沿列操作,行数被消除了
print(c.sum(axis = 1)) #[ 6 22 38]# 一维数组切片
a = np.arange(10)**3
print(a) # [ 0 1 8 27 64 125 216 343 512 729]
print(a[2:5]) # [ 8 27 64]
# equivalent to a[0:6:2] = -1000; a[开始位置, 结束位置, 步长]
a[:6:2] = -10 # [-10 1 -10 27 -10 125 216 343 512 729]
print(a)
print(a[::-1]) # [729 512 343 216 125 -10 27 -10 1 -10], 倒序# 多维数组
a = np.arange(12).reshape(3, 4) # [[ 0 1 2 3], [ 4 5 6 7], [ 8 9 10 11]]
print(a[:, 0]) # [0 4 8]
print(a[...,0]) # [0 4 8] # …符号表示将所有未指定索引的维度均赋为 :
print(a[-1]) # [ 8 9 10 11]# 遍历数组的每个元素
for i in a.flat:print(i)
3.多维数组组合
a = np.array([[0,1],[2,3]]) # [[0 1],[2 3]]
print(a.transpose()) # [[0 2],[1 3]]
b = np.array([[4,5],[6,7]])# 水平组合
print(np.concatenate((a, b), axis=1)) # [[0 1 4 5], [2 3 6 7]] ,axis = 1,按行操作# 垂直组合
print(np.concatenate((a, b), axis=0)) # [[0 1],[2 3],[4 5],[6 7]]
4.数组中查找最大/小索引
# # 获取数组中最大的前n个数值的位置索引
import heapq
def getListMaxNumIndex(num_list,topk=3):'''获取列表中最大的前n个数值的位置索引'''max_num_index=map(num_list.index, heapq.nlargest(topk,num_list))min_num_index=map(num_list.index, heapq.nsmallest(topk,num_list))print('max_num_index:',list(max_num_index))print('min_num_index:',list(min_num_index))a = [1, 5, 7, 2, 3]
print(getListMaxNumIndex(a, 2))
5.查找符合条件元素索引
# 查找到符合条件元素的索引
a = np.arange(15).reshape(3,5)
print(np.where(a > 8)) # [[1, 2, 2, 2, 2, 2], [4, 0, 1, 2, 3, 4]]
print(np.argwhere(a > 8)) # [[1 4],[2 0],[2 1],[2 2],[2 3],[2 4]]# 找出满足条件的所有数中,左上角那个数值的索引
tl = np.min(np.where(a > 8), axis = 1)
print(tl) #[1 0]
# 找出满足条件的所有数中,右下角那个数值的索引
br = np.max(np.where(a > 8), axis = 1)
print(br) #[2 4]
6.更改数组维度
参考1: 扩充数组维度
# 增加数组维度
a = np.arange(6).reshape(2, 3) # (2, 3)
b = a[:,:,np.newaxis,np.newaxis]
print(a.shape) # (2, 3, 1, 1)# 扩充数组维度
a = np.arange(16).reshape(4, 4) # (4, 4)
a = np.expand_dims(a, 0).repeat(3, axis=0) # (3, 4, 4)# 删除行(axis=0)/列(axis=1)
a = np.arange(16).reshape(4, 4)
b = np.delete(a, 0, axis=1) # 以列维度删除
print(b)
Python之Numpy常用操作相关推荐
- python:Numpy常用操作(二):利用random创建ndarray
一:生成0-1之间的随机数 import numpy as np nd3=np.random.random([3,3])#生成0-1之间的随机数 print(nd3) print(type(nd3)) ...
- python numpy常用操作、Numpy 多维数组、矩阵相乘、矩阵乘以向量
python numpy常用操作 Numpy基本操作 # 导入numpy import numpy as np # 生成numpy数组 x = np.array([1.0, 2.0, 3.0]) pr ...
- python中numpy矩阵运算操作大全(非常全)!
python中numpy矩阵运算操作大全(非常全) //2019.07.10晚 python矩阵运算大全 1.矩阵的输出形式: 对于任何一个矩阵,python输出的模板是: import numpy ...
- python图像处理的常用操作
python图像处理的常用操作 裁剪 持续更新 裁剪 import cv2img = cv2.imread("1.jpg") print(img.shape) cropped = ...
- python学习——numpy基础操作
numpy 基础操作 1 创建数组 2 数组常用属性和函数 3 数组元素增删 4 元素查找 5 数学运算 6 数组切片 1 创建数组 import numpy as np #以后numpy简写为np ...
- Python数据分析——Numpy常用函数
numpy常用函数 加载文件 numpy提供了函数用于加载逻辑上可被解释为二维数组的文本文件,格式如下: 数据项1 <分隔符> 数据项2 <分隔符> ... <分隔符&g ...
- python数据框常用操作_转载:python数据框的操作
我们接着上次分享给大家的两篇文章:Python数据分析之numpy学习(一)和Python数据分析之numpy学习(二),继续讨论使用Python中的pandas模块进行数据分.在接下来的两期pand ...
- Python之Numpy 常用函数归纳总结
目录 通用函数 常见的简单数组函数 一元函数 二元函数 每文一诗(语) 通用函数 常见的简单数组函数 先看看代码操作 mport numpy as np# # 产生一个数组arr=np.arange( ...
- 3.1 Python 字符串类型常用操作及内置方法
文章目录 1. Str 字符串 1.1 字符串 1.2 反斜杠 1. 字符串跨行书写 2. 转义字符 1.3 打印引号 1. 错误示例 2. 解决方法 1.4 三引号 1.5 原始字符串 1. 正确示 ...
最新文章
- Consensus Mechanisms — As Detailed and Concise as possible!
- Midway Serverless 2.0,一体化让前端研发再次提效
- vim编辑器中如何查找某个词
- 发布时和调试时使用不同的JS
- php 如何打乱数组顺序,【PHP打乱数组顺序的方法有哪些,这样的程序你真的会写吗】- 环球网校...
- 常用HTML转义字符,
- nginx 缓存机制
- macOS Ventura 正式版发布 苹果官方详解macOS 13 Ventura正式版
- 【直通车介绍】拼多多商家如何开直通车,如何开好直通车?
- 牛客每日一题 飞扬的小鸟
- 函数签名function signature是什么意思
- flutter comsumer局部刷新的问题
- linux界面任务栏平铺,可能是linux 4.9.8的问题-安装15.4后桌面没有任务栏
- STM32DIY机械键盘
- Unity中关于IphoneX的屏幕适配
- js【详解】arr.sort()数组排序(内含十大经典排序算法的js实现)
- android 打开ap热点
- Electron(基于Vue)中使用IPC
- selenium使用小瓜子
- 3g手机android应用新浪微博,3.1.1 新浪微博官方Android客户端