首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel公式技巧06: COUNTIFS函数如何处理以数组方式提供的条件

这里,一个常量数组是单列数组,另一个是单行数组,这使得Excel返回一个由这两列数组的所有可能组合组成的一个二维数组,等同于下图2所示。 ? 图2 然后,对这四种情形所得到的结果求和。...图3 然而,上述公式的结果为2。 是语法错误吗?...这个数组是怎么来的? 这里的关键是之前提到的元素“配对”。当两个(或多个)数组具有相同的“向量类型”(即要么都是单列数组,要么都是单行数组)时,Excel将对每个数组中相对应条件进行配对。...并且,第三个数组中的第三个元素“Roleplaying”在第一个数组中并没有相配对的元素。 然而,Excel会继续构建适当大小的数组以容纳预期的返回值,即上面看到的2行3列的数组。...但是,这两个函数从本质上讲具有相同的基本方面,也就是说,它们辅助我们处理要操纵的二维数组。不是像工作表单元格区域那样的那些可见的东西,而是那些仅位于Excel中间计算链深度之内并且是临时的东西。

5.6K42

《利用Python进行数据分析·第2版》第4章 NumPy基础:数组和矢量计算4.1 NumPy的ndarray:一种多维数组对象4.2 通用函数:快速的元素级数组函数4.3 利用数组进行数据处理4.

NumPy之于数值计算特别重要的原因之一,是因为它可以高效处理大数组的数据。这是因为: NumPy是在一个连续的内存块中存储数据,独立于其他Python内置对象。...4.1 NumPy的ndarray:一种多维数组对象 NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。...本书的内容不需要对广播机制有多深的理解。 基本的索引和切片 NumPy数组的索引是一个内容丰富的主题,因为选取数据子集或单个元素的方式有很多。一维数组很简单。...4.3 利用数组进行数据处理 NumPy数组使你可以将许多种数据处理任务表述为简洁的数组表达式(否则需要编写循环)。用数组表达式代替循环的做法,通常被称为矢量化。...一般来说,矢量化数组运算要比等价的纯Python方式快上一两个数量级(甚至更多),尤其是各种数值计算。在后面内容中(见附录A)我将介绍广播,这是一种针对矢量化计算的强大手段。

4.9K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python之NumPy实践之数组和矢量计算

    Python之NumPy实践之数组和矢量计算 1. NumPy(Numerical Python)是高性能科学技术和数据分析的基础包。 2. NumPy的ndarray:一种对位数组对象。...不同大小的数组之间的运算叫做广播。 9. 基本的索引和切片 索引:NumPy数组的索引是一个内容丰富的主题,因为选取数据子集或者单个元素的方式有很多。...切片:跟列表最重要的区别在于,数组切片是原始数组的视图。 10. 切片索引:切片是沿着一个轴向选取元素的,可以一次传入多个切片,就像传入多个索引那样。 11....通用函数(即ufunc)是一种对ndarray中的数据执行元素级运算的函数。 14. 利用数组进行数据处理 NumPy数组使得可以将许多数据处理任务表述为简洁的数组表达式。...用数组的文件进行输入输出 将数组以二进制格式保存到磁盘:np.save和np.load 存取文本文件:pandas中的read_csv和read_table函数;np.loadtxt或np.genfromtxt

    1.5K80

    Python NumPy 基础

    前言 这两天读完《利用Python进行数据分析》 这本书的第4章:NumPy 基础:数组和矢量计算 后,在进行下一步阅读高级应用前,先整理本章内容,做个笔记备查,也好加深印象。...有一点很需要注意,数组切片是原始数组的视图,这就是说数据不会被复制到新的数组切片上,对数组切片的任何修改都会直接反应到原数组上,或者说数组切片只是一个对原数组内容的引用, 如下图。 ?...对于多维数组的索引,需要注意的是有一个“轴”的问题(matlab用户肯定很奇怪),其实就是行和列,下面有个图说明。 ? 再用个例子来说明下高维数组的索引方式。 ?...这种用法很多时候真的很方便(废话),比如图像处理中我想把像素矩阵中大于110的全都置为1,小于110的都置为0,那么就可以这么写np.where(matrix > 110, 1, 0)。...其中另一种方法求最大值所在位置使用了numpy.argmax 函数,该函数可直接返回最大值位置(啰嗦了~~)。 数学和统计函数 主要就是计算均值、方差、求和、最大值、最小值、累计和和累计积等。

    1.3K10

    Python-NumPy基础

    前言 这两天读完《利用Python进行数据分析》 这本书的第4章:NumPy 基础:数组和矢量计算 后,在进行下一步阅读高级应用前,先整理本章内容,做个笔记备查,也好加深印象。...有一点很需要注意,数组切片是原始数组的视图,这就是说数据不会被复制到新的数组切片上,对数组切片的任何修改都会直接反应到原数组上,或者说数组切片只是一个对原数组内容的引用, 如下图。 ?...对于多维数组的索引,需要注意的是有一个“轴”的问题(matlab用户肯定很奇怪),其实就是行和列,下面有个图说明。 ? 再用个例子来说明下高维数组的索引方式。 ?...这种用法很多时候真的很方便(废话),比如图像处理中我想把像素矩阵中大于110的全都置为1,小于110的都置为0,那么就可以这么写np.where(matrix > 110, 1, 0)。...其中另一种方法求最大值所在位置使用了numpy.argmax 函数,该函数可直接返回最大值位置(啰嗦了~~)。 数学和统计函数 主要就是计算均值、方差、求和、最大值、最小值、累计和和累计积等。

    1.7K100

    【深度学习】 NumPy详解(二):数组操作(索引和切片、形状操作、转置操作、拼接操作)

    Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。...它提供了一个强大的多维数组对象(ndarray),用于进行高效的数值运算和数据处理。...Numpy的主要功能包括: 多维数组:Numpy的核心是ndarray对象,它是一个多维数组,可以存储同类型的元素。这使得Numpy非常适合处理向量、矩阵和其他多维数据结构。...1、创建数组 【深度学习】 Python 和 NumPy 系列教程(九):NumPy详解:1、创建数组的n种方式_QomolangmaH的博客-CSDN博客 https://blog.csdn.net/...拼接操作 数组拼接操作是指将多个数组按照指定的方式进行连接的操作。 np.concatenate()函数 np.concatenate()函数用于沿指定的轴连接数组。

    11910

    这是我见过最好的NumPy图解教程

    ♥ 拿起Python,防御特朗普的Twitter ♥ AQR最新研究 | 机器能“学习”金融吗? ? 正文 NumPy是Python中用于数据分析、机器学习、科学计算的重要软件包。...除了数据切片和数据切块的功能之外,掌握numpy也使得开发者在使用各数据处理库调试和处理复杂用例时更具优势。 ?...NumPy通过数组广播(broadcasting)知道这种操作需要和数组的每个元素相乘。 数组的切片操作 我们可以像python列表操作那样对NumPy数组进行索引和切片,如下图所示: ?...与算术运算有很大区别是使用点积的矩阵乘法。NumPy提供了dot()方法,可用于矩阵之间进行点积运算: ? 上图的底部添加了矩阵尺寸,以强调运算的两个矩阵在列和行必须相等。...你可以看到此NumPy数组的维度为[embedding_dimension x sequence_length]。 在实践中,这些数值不一定是这样的,但我以这种方式呈现它是为了视觉上的一致。

    1.8K41

    一篇文章学会numpy

    下面我们来介绍几个NumPy的主要功能: 1. Ndarray 数据类型 ndarray 是 NumPy 模块中的一种数据类型,它是一个由同类型元素集合组成的多维数组(也就是 N 维数组)。...数组索引、切片和迭代 与普通 python 列表相同,在 NumPy 中也可以使用索引、切片和迭代,好处是可以高效地进行数组处理操作。...数组索引方式和普通列表不同的一点是可以通过逗号将多个整数作为索引传入以选取单个元素。 4. 数组形状操作 这意味着改变数组的形状,如更改行列数或重塑数组。可以使用reshape()函数改变其尺寸。...可以看到,新数组已按升序排列。 4. 数组索引、切片和迭代 注释: 导入NumPy库,并将其命名为np。 通过np.array()函数创建一个一维数组。 使用索引方式输出第一个元素。...使用切片的方式输出第2到4个元素(不包括第5个元素)。 使用间隔参数输出偶数位置的元素。 使用for循环,遍历数组并输出每个元素。

    10010

    NumSharp的数组切片功能

    如果你没用过NumPy,你可能不知道切片技术有多好用, Python数组允许通过对一定范围对元素进行索引来返回数组的一个切片,其索引操作是这样的:a[start:end:step]。...但是,只有使用NumPy复杂巧妙的数组实现,切片才成为一种真正强大的数据操作技术,若没有这种技术,机器学习或数据科学就无法想象了。...作为NumSharp的开发人员之一,我将向您展示几个重要的切片用例,并附有C#的示例代码段。首先请注意,由于语言语法的不同,在C#中无法以与Python相同的方式进行索引。...同时这也有助于减少算法的复杂性,因为通过递归切片减少了数据的维数。 用例:高效地处理高维数据 ?...在处理NumSharp的NDArray的.ToString() 方法时(这个方法可以打印出任意高维卷)我注意到该算法通过系统地和递归地将(N-1)D卷切出ND-卷等诸如此类的方式简单而优雅的取得了结果。

    1.7K30

    盘一盘 NumPy (上)

    0 引言 Numpy 是 Python 专门处理高维数组 (high dimensional array) 的计算的包,每次使用它遇到问题都会它的官网 (www.numpy.org). 去找答案。...numpy 数组,有三种方式: 按步就班的 np.array() 用在列表和元组上 定隔定点的 np.arange() 和 np.linspace() 一步登天的 np.ones(), np.zeros...( "文件名" ) 即可加载该文件 np.genfromtxt("arr_from_csv.csv") array([nan, nan]) 奇怪的是数组里面都是 nan,原因是没有设定好「分隔符 ;」,...获取数组是通过索引 (indexing) 和切片 (slicing) 来完成的, 切片是获取一段特定位置的元素 索引是获取一个特定位置的元素 索引和切片的方式和列表一模一样,参考 Python 入门篇...3.1 正规索引 虽然切片操作可以由多次索引操作替代,但两者最大的区别在于 切片得到的是原数组的一个视图 (view) ,修改切片中的内容会改变原数组 索引得到的是原数组的一个复制 (copy),修改索引中的内容不会改变原数组

    2.9K40

    盘一盘 Python 系列 2 - NumPy (上)

    Numpy 是 Python 专门处理高维数组 (high dimensional array) 的计算的包,每次使用它遇到问题都会它的官网 (www.numpy.org). 去找答案。...numpy 数组,有三种方式: 按步就班的 np.array() 用在列表和元组上 定隔定点的 np.arange() 和 np.linspace() 一步登天的 np.ones(), np.zeros...用 np.genfromtxt( "文件名" ) 即可加载该文件 np.genfromtxt("arr_from_csv.csv") array([nan, nan]) 奇怪的是数组里面都是 nan,原因是没有设定好...获取数组是通过索引 (indexing) 和切片 (slicing) 来完成的, 切片是获取一段特定位置的元素 索引是获取一个特定位置的元素 索引和切片的方式和列表一模一样,参考 Python 入门篇...3.1 正规索引 虽然切片操作可以由多次索引操作替代,但两者最大的区别在于 切片得到的是原数组的一个视图 (view) ,修改切片中的内容会改变原数组 索引得到的是原数组的一个复制 (copy),修改索引中的内容不会改变原数组

    2.4K60

    【干货】NumPy入门深度好文 (上篇)

    0 引言 Numpy 是 Python 专门处理高维数组 (high dimensional array) 的计算的包,每次使用它遇到问题都会它的官网 (www.numpy.org). 去找答案。...numpy 数组,有三种方式: 按步就班的 np.array() 用在列表和元组上 定隔定点的 np.arange() 和 np.linspace() 一步登天的 np.ones(), np.zeros...用 np.genfromtxt( "文件名" ) 即可加载该文件 np.genfromtxt("arr_from_csv.csv") array([nan, nan]) 奇怪的是数组里面都是 nan,原因是没有设定好...获取数组是通过索引 (indexing) 和切片 (slicing) 来完成的, 切片是获取一段特定位置的元素 索引是获取一个特定位置的元素 索引和切片的方式和列表一模一样,参考 Python 入门篇...3.1 正规索引 虽然切片操作可以由多次索引操作替代,但两者最大的区别在于 切片得到的是原数组的一个视图 (view) ,修改切片中的内容会改变原数组 索引得到的是原数组的一个复制 (copy),修改索引中的内容不会改变原数组

    2.3K20

    Python 数据处理:NumPy库

    本文内容:Python 数据处理:NumPy库 ---- Python 数据处理:NumPy库 1.NumPy简介 2.NumPy的ndarray:一种多维数组对象 2.1 创建ndarray 2.2...1:6]) 对于之前的二维数组arr2d,其切片方式稍显不同,它是沿着第0轴(即第一个轴)切片的。...: 函数 描述 concatenate 最一般化的连接,沿一条轴连接一组数组 vstack、row_stack 以面向行的方式对数组进行堆叠(沿轴o) hstack 以面向列的方式对数组进行堆叠(沿轴...将标量值跟数组合并时就会发生最简单的广播: import numpy as np arr = np.arange(5) print(arr) print(arr * 4) 看一个例子,我们可以通过减去列平均值的方式对数组的每一列进行距平化处理...用广播的方式对行进行距平化处理会稍微麻烦一些。幸运的是,只要遵循一定的规则,低维度的值是可以被广播到数组的任意维度的(比如对二维数组各列减去行平均值)。

    5.7K11

    手把手教你学Numpy教程,从此数据处理不再慌【三】——索引篇

    所以我整理了一下相关的用法,把关于索引的使用简单分成了几类,我们一个一个来看。 切片索引 切片我们都熟悉,用冒号将两个数隔开,表示一个区间的上界和下界。通过这种方式访问这个区间内的所有元素。...这样切片获得的数据大概是这样的: ? 也就是说在numpy的数组当中各个维度是分开的,每一个维度都支持切片。我们可以根据我们的需要切片或者是固定下标来获取我们想要的切片。...bool型索引 numpy当中还有一个非常好用的索引方式叫做bool型索引。...而逻辑判断其实也是一种运算,所以如果我们将逻辑运算应用在numpy数组上的话同样会得到一个numpy数组,只不过是bool类型的numpy数组。 我们来看一个例子: ?...总结 今天关于numpy当中索引的使用和介绍就到这里,仅仅看介绍可能感受并不明显。但如果上手用numpy做过一次数据处理和实现过机器学习的模型,相信一定可以感受到它的易用性和强大的功能。

    54540

    图解NumPy,别告诉我你还看不懂!

    机器之心编译 本文用可视化的方式介绍了 NumPy 的功能和使用示例。 ? NumPy 软件包是 Python 生态系统中数据分析、机器学习和科学计算的主力军。它极大地简化了向量和矩阵的操作处理。...除了能对数值数据进行切片(slice)和切块(dice)之外,使用 NumPy 还能为处理和调试上述库中的高级实例带来极大便利。...通常情况下,我们希望数组和单个数字之间也可以进行运算操作(即向量和标量之间的运算)。比如说,我们的数组表示以英里为单位的距离,我们希望将其单位转换为千米。只需输入 data * 1.6 即可: ?...索引 我们可以我们像对 python 列表进行切片一样,对 NumPy 数组进行任意的索引和切片: ? 聚合 NumPy 还提供聚合功能: ?...其中心数据结构被叫作 ndarray(N 维数组)不是没道理的。 ? 在很多情况下,处理一个新的维度只需在 NumPy 函数的参数中添加一个逗号: ?

    2.1K20

    【图解 NumPy】最形象的教程

    转自:机器之心(ID:almosthuman2014) 本文用可视化的方式介绍了 NumPy 的功能和使用示例。 ?...除了能对数值数据进行切片(slice)和切块(dice)之外,使用 NumPy 还能为处理和调试上述库中的高级实例带来极大便利。...通常情况下,我们希望数组和单个数字之间也可以进行运算操作(即向量和标量之间的运算)。比如说,我们的数组表示以英里为单位的距离,我们希望将其单位转换为千米。只需输入 data * 1.6 即可: ?...索引 我们可以我们像对 python 列表进行切片一样,对 NumPy 数组进行任意的索引和切片: ? 聚合 NumPy 还提供聚合功能: ?...其中心数据结构被叫作 ndarray(N 维数组)不是没道理的。 ? 在很多情况下,处理一个新的维度只需在 NumPy 函数的参数中添加一个逗号: ?

    2.5K31

    图解NumPy,这是理解数组最形象的一份教程了

    选自Jay Alammar Blog 作者:Jay Alammar 机器之心编译 参与:高璇、路 本文用可视化的方式介绍了 NumPy 的功能和使用示例。 ?...除了能对数值数据进行切片(slice)和切块(dice)之外,使用 NumPy 还能为处理和调试上述库中的高级实例带来极大便利。...通常情况下,我们希望数组和单个数字之间也可以进行运算操作(即向量和标量之间的运算)。比如说,我们的数组表示以英里为单位的距离,我们希望将其单位转换为千米。只需输入 data * 1.6 即可: ?...索引 我们可以我们像对 python 列表进行切片一样,对 NumPy 数组进行任意的索引和切片: ? 聚合 NumPy 还提供聚合功能: ?...其中心数据结构被叫作 ndarray(N 维数组)不是没道理的。 ? 在很多情况下,处理一个新的维度只需在 NumPy 函数的参数中添加一个逗号: ?

    2K20

    快速入门 Numpy

    作者:乐雨泉(yuquanle),湖南大学在读硕士,研究方向机器学习与自然语言处理。 Numpy(Numeric Python)是一个用 Python 实现的科学计算的扩展程序库。 包括: 1....提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。...数组是一个由不同数值组成的网格, 网格中的数据都是同一种数据类型并且可以通过非负整型数的元组来访问。...import numpy as np # 切片:和Python列表类似,numpy数组也可以使用切片语法。 # 由于数组可能是多维的,因此必须为数组的每个维指定切片。...:布尔型数组访问可以让你选择数组中任意元素 # 这种访问方式用于选取数组中满足某些条件的元素 a2 = np.array([[1,2], [3, 4], [5, 6]]) b2 = (a > 2) print

    81430

    Numpy 修炼之道 (5)—— 索引和切片

    推荐阅读时间:7min~10min 文章内容:Numpy 索引和切片 上一篇:Numpy 修炼之道 (4)—— 基本运算操作 Python 中原生的数组就支持使用方括号([])进行索引和切片操作,Numpy...切片支持 可以使用切片和步长来截取不同长度的数组,使用方式与Python原生的对列表和元组的方式相同。...索引数组 Numpy数组可以被其他数组索引。对于索引数组的所有情况,返回的是原始数据的副本,而不是一个获取切片的视图。 索引数组必须是整数类型。...索引数组中的元素始终以行优先(C样式)顺序进行迭代和返回。结果也与y[np.nonzero(b)]相同。与索引数组一样,返回的是数据的副本,而不是一个获取切片的视图。...这可以方便地以一种方式组合两个数组,否则将需要明确重塑操作。

    1K60

    python:numpy详细教程

    NumPy的数组类被称作ndarray。通常被称作数组。注意numpy.array和标准Python库类array.array并不相同,后者只处理一维数组和提供少量功能。...示例     打印数组     当你打印一个数组,NumPy以类似嵌套列表的形式显示它,但是呈以下布局:     最后的轴从左到右打印 次后的轴从顶向下打印 剩下的轴从顶向下打印,每个切片通过一个空行与下一个隔开...NumPy通常创建一个以这个顺序保存数据的数组,所以ravel()将总是不需要复制它的参数3。但是如果数组是通过切片其它数组或有不同寻常的选项时,它可能需要被复制。...我们能想到的使用布尔数组的索引最自然方式就是使用和原数组一样形状的布尔数组。   ...基本的切片使用切片对象或整数。例如,A[:]和M[:]的求值将表现得和Python索引很相似。然而要注意很重要的一点就是NumPy切片数组不创建数据的副本;切片提供统一数据的视图。

    1.2K40
    领券