在熊猫中,“元素明智”是什么意思?

时间:2018-09-10 00:42:18

标签: pandas

我正在努力清楚地理解熊猫中的“元素”概念。已经经历过document of Pandas并在Google周围搜索,我猜这是某种形式的行吗?人们说“明智地运用职能”是什么意思? 当我阅读这篇SO帖子时出现了这个问题:How to apply a function to two columns of Pandas dataframe

3 个答案:

答案 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和线性代数中也是如此(据我所知)。