np.apply_along_axis函数用法

函数原型:

numpy.apply_along_axis(func1d, axis, arr, *args, **kwargs)

这个函数的各个参数的含义请大家自行查阅了解,这里只记录一下参数 axis*args的作用。

参数axis

首先定义一个函数来打印数组的 shape与内容,然后生成一个4×3的数组 array

def print_a(array):
    print("shape: %s, array is \n%s"%(array.shape, array))

array=np.array([[2,3,4],[3,4,5],[6,7,8],[7,8,9]])

对这个数组调用 np.apply_along_axis函数,看该函数会对数组产生什么作用

tmp=np.apply_along_axis(print_a, 0, array)

结果如下:
shape: (4,), array is
[2 3 6 7]
shape: (4,), array is
[3 4 7 8]
shape: (4,), array is
[4 5 8 9]

可以看到,数组 array被切成了3部分,每一部分是 array在维度0上的元素,也就是说, apply_along_axis的功能是将数组在指定维度上的元素 聚合起来,聚合的结果是一个向量, array的维度是 4x3,如果将第0维聚合起来的话,每一个向量的长度为4,如果将第1维聚合起来,那么每一个向量的维度是3;

下面是在维度1上调用该函数的结果

tmp=np.apply_along_axis(print_a, 1, array)

结果如下:
shape: (3,), array is
[2 3 4]
shape: (3,), array is
[3 4 5]
shape: (3,), array is
[6 7 8]
shape: (3,), array is
[7 8 9]

参数args

args指这个函数可以接受很多其他参数,这些参数要传入函数 func1d中进行使用,需要注意的是,除了第3个参数 arr之外,后面传入的参数不会被按照维度切分,就是说后面传入的数组会原封不动的传入到函数 func1d中。

示例代码:

def print_b(arr, brr):
    print(arr.shape, brr.shape)

arr=np.array([[2,3],[3,4]])
brr=np.array([[2,3,4],[3,4,5],[6,7,8],[7,8,9]])

tmp=np.apply_along_axis(print_b,0,arr,brr)

结果如下:

tmp=np.apply_along_axis(print_b,0,arr,brr)
(2,) (4, 3)
(2,) (4, 3)

可以看到,brr的维度没有变化。

Original: https://blog.csdn.net/weixin_44843824/article/details/114665812
Author: 水木的编程那些事儿
Title: np.apply_along_axis函数用法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/762816/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • conda创建虚拟环境并添加到jupyter kernel(踩坑泪目)

    一些命令 conda list 查看安装了那些包 conda env list 查看有哪些虚拟环境 conda update conda 检查更新当前conda conda ins…

    Python 2023年9月8日
    052
  • 【Python】如何写一个锅炉温控系统

    1.前言 冬天很冷,买了一个锅炉,需要循环泵的。简单来说就是锅炉水热了之后循环泵自动开启,然后将热水输送走,送到暖 气,热水抽走,凉水进入锅炉,温度降低,循环泵关闭,等待下一次水烧…

    Python 2023年11月2日
    046
  • Scrapy框架初级

    Scrapy框架初级 Scrapy介绍 什么是scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速的抓取 Scra…

    Python 2023年10月5日
    049
  • python scrapy是什么_Python里面scrapy是什么

    在windows还是在linux上,如果我们直接使用pip安装Scrapy,会报错,这是因为scrapy依赖twisted,而twisted需要c++的一个文件,在Windows环…

    Python 2023年10月4日
    050
  • 西电数据挖掘实验3——复杂网络社团检测

    一、实验内容 复杂网络是描述复杂系统的有力工具,其中每个实体定义成一个节点,实体间的交互关系定义为边。复杂网络社团结构定义为内紧外松的拓扑结构,即一组节点的集合,集合内的节点交互紧…

    Python 2023年10月11日
    072
  • 微前端总结

    微前端概述 微前端概念是从微服务概念扩展而来的,摒弃大型单体方式,将前端整体分解为小而简单的块,这些块可以独立开发、测试和部署,同时仍然聚合为一个产品出现在客户面前。可以理解微前端…

    Python 2023年10月19日
    040
  • MySQL高级SQL语句

    目录 一、常用查询 1、按关键字排序 1.1 前期准备 1.2 升序、降序列出数据 1.3 找出其中南京的数据并以分数降序列出 1.4 查询学生信息先按兴趣id降序排列,相同分数的…

    Python 2023年9月26日
    062
  • torch.sum()、np.sum()和sum()简要介绍

    [import open3d as o3d import numpy as np import torch import torch.nn.functional as F impo…

    Python 2023年8月24日
    070
  • pytest.ini配置小记

    pytest.ini:pytest的主配置文件,可以改变pytest的默认行为。conftest.py:本地的插件库,其中的hook函数和fixture将作用于该文件所在的目录以及…

    Python 2023年9月10日
    036
  • pandas学习

    列删除pop,del 行删除drop 列表嵌套创建data值,嵌套的是一行一行的数据。 字典创建data值,嵌套的是一列一列的数据。#字典的key为columns,values为S…

    Python 2023年8月22日
    047
  • 人工智能期末考试

    第一章-绪论 1.人工智能的定义 定义:使机器的软件或程序,通过某些算法进行数据学习,并使用所学进行仿人决策。 2. 人工智能的各种认知观 符号主义 ( symbolism ) 原…

    Python 2023年9月28日
    063
  • 【机器学习】李宏毅——Unsupervised Learning

    读这篇文章之间欢迎各位先阅读我之前写过的线性降维的文章。这篇文章应该也是属于Unsupervised Learning的内容的。 Neighbor Embedding Manifo…

    Python 2023年10月11日
    058
  • p10.第一章 Python基础入门 — 习题详解(十)

    1.3.4.3 打印下图菱形 * *** ***** ******* ***** *** * 思路1:前置空格 行号 i 星个数 前空格数 后空格数 总空格数 1 -3 1 3 3…

    Python 2023年10月7日
    037
  • Pandas groupby分组操作详解

    在数据分析中,经常会遇到这样的情况:根据某一列(或多列)标签把数据划分为不同的组别,然后再对其进行数据分析。比如,某网站对注册用户的性别或者年龄等进行分组,从而研究出网站用户的画像…

    Python 2023年8月6日
    042
  • matplotlib画图——绘制多子图、legend的位置

    绘制子图 在python上绘制子图,相关的命令有两个 plt.subplot plt.subplots 两者的区别在于同时创建和逐个创建子图 fig, axes = plt.sub…

    Python 2023年8月31日
    054
  • Python学习:import的正确用法

    import语句用来导入其他python文件(称为模块module),使用该模块里定义的类、方法或者变量,从而达到代码复用的目的。 将要建立文件的结构为: Tree |____ m…

    Python 2023年6月9日
    065
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球