"element wise"在熊猫中是什么意思?



我正在努力清楚地理解熊猫中"元素"的概念。已经浏览了熊猫的文档并用谷歌搜索了一下,我猜这是某种行?当人们说"应用功能明智"时,他们是什么意思? 当我阅读这篇SO帖子时,这个问题出现了:如何将函数应用于两列Pandas数据帧

> Pandas 是为操作矢量操作而设计的,即获取整个列并操作某些函数。您可以将其称为按列操作。 但在某些情况下,您可能需要逐个元素操作(即元素明智的操作(。这种类型的操作不是很有效。

下面是一个示例:

import pandas as pd
df = pd.DataFrame([a for a in range(100)], columns=['mynum'])

列式操作

%%timeit
df['add1'] = df.mynum +1

222 μs ± 3.31 μs 每个环路

当操作元件明智时

%%timeit
df['add1'] = df.apply(lambda a: a.mynum+1, axis = 1)

每回路 2.33 ms ± 85.4 μs

我相信Pandas中的"元素"是从NumPy继承的"元素"概念。阅读一下关于 ufuncs 的文档的前几段。

每个通用函数接受数组输入并通过对输入逐个执行核心函数来生成数组输出(其中元素通常是标量,但可以是广义 ufunc 的向量或高阶子数组(。

在数学中,逐元素运算是指对矩阵中单个元素的运算。

例子:

import numpy as np
>>> x, y = np.arange(1,5).reshape(2,2), 3*np.eye(2)
>>> x, y
>>> x, y = np.arange(1,5).reshape(2,2), 3*np.eye(2)
>>> x, y
(array([[1, 2],
[3, 4]]),
array([[3., 0.],
[0., 3.]]))
>>> x + y   # element-wise addition
array([[4., 2.],
[3., 7.]])
columns of y
>>> np.dot(x,y)    # NOT element-wise multiplication (matrix multiplication)
# elements become dot products of the rows of x with columns of y
array([[ 3.,  6.],
[ 9., 12.]])
>>> x * y   # element-wise multiplication
array([[ 3.,  0.],
[ 0., 12.]])

我知道你的问题是关于熊猫的,但熊猫中的元素意味着它在 NumPy 和线性代数中所做的同样的事情(据我所知(。

逐个元素意味着逐个元素地处理数据。

最新更新