处理结构化数据、数据库操作等 掩码数组 Masked Arrays 在数组中使用掩码标记无效或缺失的数据,进行计算时可以自动忽略掩码元素。...对于实数数组,返回数组本身。 imag 复数数组的虚部。对于实数数组,返回全零数组。...data 数组的缓冲区,包含数组的实际元素。 创建数组当使用NumPy库处理数据时,有多种方法可以创建数组。...numpy.zeros() 创建一个指定形状的全零数组。...numpy.empty() 创建一个指定形状的空数组,数组元素的值是未初始化的。
当索引数组时,缺失的轴简称为全切片。...相比之下,零维数组是包含精确一个值的 ndarray 实例。 轴 数组维度的另一个术语。轴从左到右编号;轴 0 是形状元组中的第一个元素。 在二维矢量中,轴 0 的元素是行,轴 1 的元素是列。...poly1d 尊重所有零参数的数据类型。 swig 的 numpy.i 文件仅适用于 Python 3。 在 np.array 中发现空数据类型。...1 的字段在将来的版本中不会被折叠成标量 兼容性说明 float16 次正规化舍入 使用 divmod 时的带符号零 MaskedArray.mask 现在返回掩码的视图,而不是掩码本身...PPC 长双浮点信息的修复(查看详情) ndarray 子类的更好的默认 repr(查看详情) 更可靠的掩码数组比较(查看详情) np.matrix 中的布尔元素现在可以使用字符串语法创建
数值计算、数学运算、逻辑运算等 索引和切片 Indexing and Slicing 用于访问和修改数组中的元素,可以通过索引、切片和布尔掩码进行操作。...处理结构化数据、数据库操作等 掩码数组 Masked Arrays 在数组中使用掩码标记无效或缺失的数据,进行计算时可以自动忽略掩码元素。...nbytes 数组中所有元素的总字节数,等于itemsize * size。 real 复数数组的实部。对于实数数组,返回数组本身。 imag 复数数组的虚部。对于实数数组,返回全零数组。...创建数组 当使用NumPy库处理数据时,有多种方法可以创建数组。...numpy.zeros() 创建一个指定形状的全零数组。 numpy.ones() 创建一个指定形状的全1数组。 numpy.empty() 创建一个指定形状的空数组,数组元素的值是未初始化的。
print(arr) Ouput: [1 2 3 4 5] numpy.zeros:创建一个以零填充的数组。...类似的还有numpy.ones:创建一个都是1的数组 / numpy.empty:在不初始化数组元素的情况下创建数组。 使用numpy.random:生成随机数组的函数。...numpy.ma:供对掩码数组的支持。 numpy.ma.array:从现有的数组或序列创建一个掩码数组。 numpy.ma.masked_array:从现有数组和掩码中创建一个掩码数组。...numpy.ma.mask:表示掩码数组中的掩码值。 numpy.ma.masked_invalid:屏蔽数组中无效的(NaN, Inf)元素。...:沿着数组的特定轴应用函数。
数组的计算:广播广播的介绍广播的规则广播的实际应用比较,掩码和布尔逻辑比较操作操作布尔数组将布尔数组作为掩码 《Python数据科学手册》读书笔记 数组的计算:广播 另外一种向量化操作的方法是利用 NumPy...广播的介绍 对于同样大小的数组, 二进制操作是对相应元素逐个计算: import numpy as np a = np.array([, , ]) b = np.array([, , ]) a +...这里这个一维数组就被扩展或者广播了。它沿着第二个维度扩展, 扩展到匹配 M 数组的形状。...一种更强大的模式是使用布尔数组作为掩码, 通过该掩码选择数据的子数据集。...,对于Numpy布尔数组,后者是最常用的操作
Numpy 长期以来一直是 Python 开发人员进行数组操作的通用选择,它是基于C语言构建的这使得它成为执行数组操作的快速和可靠的选择,并且它已经成为机器学习和数据科学必备的基础库。...) # Output(3,) 1 3 3、查看Numpy数组中元素的类型 array = np.arange(0,10,1) print(array.dtype) # Output int64 4、...# 全零数组 array = np.zeros((3,4)) print(array) print("---") # 全1数组 array = np.ones((1,2)) print(array)...使用hsplit,通过指定要返回的相同shape的array的数量,或者通过指定分割应该发生之后的列来沿着其横轴拆分原array。...vsplit沿着垂直轴分割,其分割方式与hsplit用法相同 # 沿着水平轴将数组拆分为5个较小的数组 a = np.arange(0, 5, 1) print("Horizontal split")
通常,它们围绕两种策略中的一种:使用在全局表示缺失值的掩码,或选择表示缺失条目的标记值。 在掩码方法中,掩码可以是完全独立的布尔数组,或者它可以在数据表示中占用一个比特,在本地表示值的空状态。...这些方法都没有权衡:使用单独的掩码数组需要分配额外的布尔数组,这会增加存储和计算的开销。标记值减少了可以表示的有效值的范围,并且可能需要 CPU 和 GPU 算法中的额外(通常是非最优的)逻辑。...此外,对于较小的数据类型(例如 8 位整数),牺牲一个位用作掩码,将显着减小它可以表示的值的范围。 NumPy 确实支持掩码数组吗?...删除空值 除了之前使用的掩码之外,还有一些方便的方法,dropna()(删除 NA 值)和fillna()(填充 NA 值)。...填充空值 有时比起删除 NA 值,你宁愿用有效值替换它们。这个值可能是单个数字,如零,或者可能是某种良好的替换或插值。
参考链接: Python中的numpy.log1p 文章目录 一、创建数组二、数组操作类型1. 数组属性2. 数组索引:获取单个元素3. 切片4. 数组的变形5....将布尔数组作为掩码 七、花哨索引八、数组的排序 [ NumPy version: 1.18.1 ] import numpy as np 一、创建数组 # 1.从python列表创建数组 #...#第1行 x2[0] #第1行,空切片:可省略 # 4.非副本视图的子数组 #数组切片返回的是数组数据的视图,不是数值数据的副本(python列表中切片是值的副本)。...#验证是否存在元素为真 np.all #验证所有元素是否为真 聚合函数参数axis用于指定沿着哪个轴的方向进行聚合。...(NumPy1.8版本后可用) 五、数组计算:广播 广播(broadcast):可将二元运算符用于不同大小的数组。
译者:飞龙 协议:CC BY-NC-SA 4.0 本节介绍如何使用布尔掩码,来检查和操作 NumPy 数组中的值。...我们在“NumPy 上的数组计算:通用函数”中看到,NumPy 的ufuncs可用于代替循环,对数组进行快速的逐元素算术运算;以同样的方式,我们可以使用其他ufunc对数组进行逐元素比较,然后我们可以操纵结果来回答我们的问题...我们现在暂时搁置数据,并讨论 NumPy 中的一些常用工具,使用掩码快速回答这类的问题。...作为ufunc的比较运算 在“NumPy 上的数组计算:通用函数”中,我们介绍了ufunc,专注于算术运算符。 我们看到,在数组上使用+,-,*,/和其他,产生了逐元素操作。...获取此信息的另一种方法是使用np.sum;在这种情况下,False解释为0,而True解释为1: np.sum(x < 6) # 8 `sum()``的好处就是和其他NumPy聚合函数一样,这个求和也可以沿着行或列来完成
如果我们使用Numpy的通用函数可以用来替代循环,以实现快速的数组的逐元素比较,同样地,我们也可以用掩码来解决这些问题。...下表总结了逐位的布尔运算和其对应的通用函数。 ? 利用这些工具,就可以回答那些天气数据的问题了。以下的数据是结合使用掩码和聚合实现的计算结果。...掩码就是数组的索引操作,为了将数组中的某些值选出来,可以进行简单的索引,即掩码操作。...布尔数组可以作为掩码,可以通过该掩码选择数据的子数组。...bool(42), bool(0) # (True, False) bool(42 and 0) # False bool(42 or 0) # True 当你对整数使用&和|时,表达式操作的是元素的比特
原文:numpy.org/doc/1.26/reference/generated/numpy.argwhere.html numpy.argwhere(a) 找到非零元素的数组索引,按元素分组...返回一个数组的元组,每个维度都包含该维度中非零元素的下标。 a 中的值始终以行为主测试和返回,C 样式排序。 要按元素而不是维度对下标进行分组,请使用argwhere,其将为每个非零元素返回一行。...参数: a数组样式 输入数据。 返回: res数组 输出数组,包含a.ravel()中非零的元素的索引。 另请参见 nonzero 返回输入数组中非零元素的索引。...例如,如果一个数字非零,则被视为真实,而如果一个字符串不为空,则被视为真实。...返回: countint 或 int 数组 沿着给定轴的数组中非零值的数量。否则,返回数组中的总非零值数量。 参见 非零 返回所有非零值的坐标。
NumPy 分割数组NumPy 提供了 np.array_split() 函数来分割数组,将一个数组拆分成多个较小的子数组。...高级用法除了基本用法之外,np.array_split() 还可以用于更复杂的分割操作:使用掩码进行分割: 您可以使用掩码数组来指示哪些元素应该包含在每个子数组中。...不均匀分割: 您可以指定每个子数组包含的元素数量,即使数量不均等。沿着任意轴分割: 您可以使用 axis 参数指定要分割的轴。...例如,以下代码使用掩码将数组分割成两个子数组,第一个子数组包含所有偶数元素,第二个子数组包含所有奇数元素:import numpy as nparr = np.array([1, 2, 3, 4, 5,...Sure, here is the requested Markdown formatted content:NumPy 搜索数组NumPy 提供了多种方法来搜索数组中的元素,并返回匹配项的索引。
广播(Boardcasting)是NumPy中用于在不同大小的阵列(包括标量与向量,标量与二维数组,向量与二维数组,二维数组与高维数组等)之间进行逐元素运算(例如,逐元素 加法,减法,乘法,赋值等)的一组规则...NumPy在广播的时候实际上并没有复制较小的数组; 相反,它使存储器和计算上有效地使用存储器中的现有结构,实际上实现了相同的结果。...的错误,说明dot,即点积(不是逐元素运算,对于两个向量,计算的是内积,对于两个数组,则尝试计算他们的矩阵乘积)并不能运用广播机制。...import numpy as npA = np.zeros((2,4))B = np.zeros((3,4))C = A*B报错如下: 在这里插入图片描述 这种是逐元素相乘,会运用广播机制,只不过,此时当前两个元素的维度不能广播...1时,这个数组能够用来计算,否则出错当输入数组的某个轴的长度为1时,沿着此轴运算时都用此轴上的第一组值简单来说,我总结为两条规则:两个array的shape长度与shape的每个对应值都相等的时候,那么结果就是对应元素逐元素运算
2.2 创建全零数组2.3 创建全一数据2.4 创建全空数组2.5 创建连续数组2.6 reshape操作2.7 创建连续型数据2.8 linspace的reshape操作3.Numpy基本运算3.1...输出: [[2 3 4] [3 4 5]] 2.2 创建全零数组 a = np.zeros((3,4)) print(a) # 生成3行4列的全零矩阵 输出: [[0. 0. 0. 0...1] [1 1 1 1] [1 1 1 1]] 2.4 创建全空数组 # 创建全空数组,其实每个值都是接近于零的数 a = np.empty((3,4)) print(a) 输出: [[0....中,想要求出矩阵中各个元素的乘方需要依赖双星符号 **,以二次方举例,即: c = b**2 print(c) # [0 1 4 9] # Numpy中具有很多的数学函数工具 c = np.sin(a)...C = np.array([[0,5,9], [4,0,10]]) print(np.nonzero(B)) print(np.nonzero(C)) ''' # 将所有非零元素的行与列坐标分割开
例如,零阶张量是一个标量,一阶张量是一个向量,二阶张量是一个矩阵,三阶及以上的张量则可以看作是高维数组。 在不同的上下文中,张量的意义可能会有所不同: 数据表示:在深度学习中,张量通常用于表示数据。...张量转换为 numpy 数组 Tensor.numpy 函数可以将张量转换为 ndarray 数组,但是共享内存,可以使用 copy 函数避免共享。...它接受一个张量列表作为输入,并返回一个新的张量,其中每个输入张量都沿着新添加的维度进行堆叠。...如果指定步长为2,如 t1[2:8:2],则会隔一个元素取一个,返回索引为2、4、6的元素形成的新张量。 高级索引:包括布尔索引和掩码索引等。...布尔索引允许根据一个布尔张量来选择数据,而掩码索引则使用一个具有相同形状的张量作为掩码来选择数据。
该代码已被移除,传递地址作为字节字符串现在会引发错误。 (gh-17241) poly1d遵循所有零参数的 dtype 之前,使用所有零系数构造poly1d的实例会将系数转换为np.float64。...(gh-17580) np.array的空 dtype 检测 在使用np.array(..., dtype="V")、arr.astype("V")等调用时,除非所有元素的 void 长度相同,否则将正确引发...可直接通过numpy使用,也可在numpy.ndarray的方法中使用。 任意可广播的布尔数组或标量都可以设置为where。如果用户未设置where,默认为True,以评估数组中的所有元素的函数。...该代码已被移除,现在传递字节字符串作为地址将引发错误。 (gh-17241) poly1d 尊重所有零参数的 dtype 以前,使用全零系数构造poly1d的实例会将系数转换为np.float64。...(gh-17241) poly1d 会尊重全零参数的 dtype 以前,构造一个具有全零系数的 poly1d 实例将会将系数转换为 np.float64。
square(x, /) 返回输入数组的按元素平方。 squeeze(a[, axis]) 从数组中移除一个或多个长度为 1 的轴。...where() 根据条件从两个数组中选择元素。 zeros(shape[, dtype, device]) 返回一个给定形状和类型的全零数组。...zeros_like(a[, dtype, shape, device]) 返回与给定数组相同形状和类型的全零数组。...这对应于fft(x, n)中的n。沿着每个轴,如果给定的形状比输入小,则截断输入。如果大,则用零填充输入。 自 2.0 版更改:如果为-1,则使用整个输入(无填充/修剪)。...对于 rfft(x, n),s 的最后一个元素对应于 n,而对于其余轴,它对应于 fft(x, n) 的 n。沿着任何轴,如果给定的形状小于输入的形状,则输入被裁剪。如果它更大,则输入被填充为零。
(numpy.char) 记录数组 (numpy.rec) 掩码数组 (numpy.ma) 标准容器类 数组迭代器 掩码数组 numpy.ma 模块 使用 numpy.ma...ndarray.var([axis, dtype, out, ddof, …]) 返回沿着给定轴的数组元素的方差。...ndarray.std([axis, dtype, out, ddof, …]) 返回沿着给定轴的数组元素的标准差。...zeros 创建一个每个元素都为零的数组。 empty 创建一个数组,但不改变其已分配的内存(也就是说,它包含“垃圾”)。 dtype 创建数据类型。...newbyteorder([new_order]) 使用不同的字节顺序返回相同数据的数组。 nonzero() 返回非零元素的索引。
迭代示例 熟悉迭代器的最佳方法是查看其在 NumPy 代码库中的使用情况。例如,这里是稍微改进的PyArray_CountNonzero代码的版本,它计算数组中非零元素的数量。...数组对象进行广播的迭代器,使用常规的 NumPy 广播规则。...当使用writemasked标志并且此操作数已缓冲时,这会改变从缓冲区复制数据到数组的方式。将使用掩码复制例程,该例程仅复制在数组掩码的相应元素中writemasked返回 true 的元素。...迭代示例 熟悉迭代器的最佳方法是查看其在 NumPy 代码库内部的使用情况。例如,这是对PyArray_CountNonzero的略微调整版本的代码,该版本计算数组中非零元素的数量。...数组对象,使用常规的 NumPy 广播规则。
lower()数组元素转换为小写upper()数组元素转换为大写split()指定分隔符对字符串进行分割,并返回数组列表splitlines()返回元素中的行列表,以换行符分割strip()移除元素开头或者结尾处的特定字符...numpy.char.strip() numpy.char.strip() 函数用于移除开头或结尾处的特定字符。 ...函数格式如下: numpy.sort(a, axis, kind, order) 参数说明: a: 要排序的数组axis: 沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序, axis=0...numpy.nonzero() numpy.nonzero() 函数返回输入数组中非零元素的索引。 ...numpy.matlib.eye() numpy.matlib.eye() 函数返回一个矩阵,对角线元素为 1,其他位置为零。
领取专属 10元无门槛券
手把手带您无忧上云