我正在努力清楚地理解熊猫中的“元素”概念。已经经历过document of Pandas并在Google周围搜索,我猜这是某种形式的行吗?人们说“明智地运用职能”是什么意思? 当我阅读这篇SO帖子时出现了这个问题:How to apply a function to two columns of Pandas dataframe
答案 0 :(得分:0)
逐个元素表示逐个元素处理数据。
答案 1 :(得分:0)
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
答案 2 :(得分:0)
我认为Pandas中的“元素”是NumPy继承的“元素”概念。阅读docs on 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和线性代数中也是如此(据我所知)。