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常用操作相关推荐

  1. python:Numpy常用操作(二):利用random创建ndarray

    一:生成0-1之间的随机数 import numpy as np nd3=np.random.random([3,3])#生成0-1之间的随机数 print(nd3) print(type(nd3)) ...

  2. python numpy常用操作、Numpy 多维数组、矩阵相乘、矩阵乘以向量

    python numpy常用操作 Numpy基本操作 # 导入numpy import numpy as np # 生成numpy数组 x = np.array([1.0, 2.0, 3.0]) pr ...

  3. python中numpy矩阵运算操作大全(非常全)!

    python中numpy矩阵运算操作大全(非常全) //2019.07.10晚 python矩阵运算大全 1.矩阵的输出形式: 对于任何一个矩阵,python输出的模板是: import numpy ...

  4. python图像处理的常用操作

    python图像处理的常用操作 裁剪 持续更新 裁剪 import cv2img = cv2.imread("1.jpg") print(img.shape) cropped = ...

  5. python学习——numpy基础操作

    numpy 基础操作 1 创建数组 2 数组常用属性和函数 3 数组元素增删 4 元素查找 5 数学运算 6 数组切片 1 创建数组 import numpy as np #以后numpy简写为np ...

  6. Python数据分析——Numpy常用函数

    numpy常用函数 加载文件 numpy提供了函数用于加载逻辑上可被解释为二维数组的文本文件,格式如下: 数据项1 <分隔符> 数据项2 <分隔符> ... <分隔符&g ...

  7. python数据框常用操作_转载:python数据框的操作

    我们接着上次分享给大家的两篇文章:Python数据分析之numpy学习(一)和Python数据分析之numpy学习(二),继续讨论使用Python中的pandas模块进行数据分.在接下来的两期pand ...

  8. Python之Numpy 常用函数归纳总结

    目录 通用函数 常见的简单数组函数 一元函数 二元函数 每文一诗(语) 通用函数 常见的简单数组函数 先看看代码操作 mport numpy as np# # 产生一个数组arr=np.arange( ...

  9. 3.1 Python 字符串类型常用操作及内置方法

    文章目录 1. Str 字符串 1.1 字符串 1.2 反斜杠 1. 字符串跨行书写 2. 转义字符 1.3 打印引号 1. 错误示例 2. 解决方法 1.4 三引号 1.5 原始字符串 1. 正确示 ...

最新文章

  1. Consensus Mechanisms — As Detailed and Concise as possible!
  2. Midway Serverless 2.0,一体化让前端研发再次提效
  3. vim编辑器中如何查找某个词
  4. 发布时和调试时使用不同的JS
  5. php 如何打乱数组顺序,【PHP打乱数组顺序的方法有哪些,这样的程序你真的会写吗】- 环球网校...
  6. 常用HTML转义字符,
  7. nginx 缓存机制
  8. macOS Ventura 正式版发布 苹果官方详解macOS 13 Ventura正式版
  9. 【直通车介绍】拼多多商家如何开直通车,如何开好直通车?
  10. 牛客每日一题 飞扬的小鸟
  11. 函数签名function signature是什么意思
  12. flutter comsumer局部刷新的问题
  13. linux界面任务栏平铺,可能是linux 4.9.8的问题-安装15.4后桌面没有任务栏
  14. STM32DIY机械键盘
  15. Unity中关于IphoneX的屏幕适配
  16. js【详解】arr.sort()数组排序(内含十大经典排序算法的js实现)
  17. android 打开ap热点
  18. Electron(基于Vue)中使用IPC
  19. selenium使用小瓜子
  20. 3g手机android应用新浪微博,3.1.1 新浪微博官方Android客户端

热门文章

  1. 【转载】doxygen+graphviz生成代码文档
  2. 包含命名空间的xml反序列化 (1.7环境下)
  3. 大爱sublime text3
  4. oracle学用命令大全 笔记
  5. Visual C++ 2010 新特性:并行计算
  6. 随笔2010.01.25
  7. python语法(二)——截取字符串的方法详解
  8. Logistic逻辑回归总结
  9. 少数人知道的公式+思路,财务报表自动生成,财务总监用了5年
  10. Python+BI可视化分析2000W数据之后,告诉你这届毕业生有多难