创建一个9维的零向量
np.zeros(9) # array([0., 0., 0., 0., 0., 0., 0., 0., 0.])
将字符串两边的引号去掉
eval()
是Python内置函数,可以将字符串作为Python表达式求值并返回结果。
语法:eval(expression[, globals[, locals]])
参数:
expression
:必选参数,表示要求值的Python表达式,可以是字符串或者code对象。globals
:可选参数,表示全局命名空间,如果提供,则必须是一个字典对象。locals
:可选参数,表示局部命名空间,如果提供,则必须是一个字典对象。返回:
eval()
函数会返回表达式的值。
使用方法示例:
a = 3
b = 4
result = eval('a + b')
print(result) # 输出为7
注意,eval()
函数可以执行任意Python代码,因此应该避免将未知的字符串传递给eval()
函数,或者对传递给eval()
函数的字符串进行一定的过滤和验证,以确保安全性。
apply
是Pandas DataFrame和Series的一个函数,用于在整个对象或选定的行或列上应用一个指定的函数。其语法为:
DataFrame.apply(func, axis=0, raw=False, result_type=None, args=(), **kwds)
其中,func
是要应用的函数,axis
是函数应用的轴(0表示按列,1表示按行),raw
表示是否将numpy数组传递给函数中的func
,result_type
表示返回的结果类型,args
和kwds
是可选参数,可以传递给函数func
。
例如,可以使用apply
计算DataFrame中每一行的和:
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df.apply(lambda x: x.sum(), axis=1) # 计算每一行的和
还可以使用apply
将DataFrame中的某个列转换成另一种形式,例如将字符串列转换为数值列:
df = pd.DataFrame({'A': ['1', '2', '3'], 'B': [4, 5, 6]})
df['A'] = df['A'].apply(lambda x: int(x)) # 将A列转换为int类型
numpy.vstack
将一系列的数组沿着垂直方向(行方向)堆叠起来,返回一个新的数组。其语法为:
numpy.vstack(tup)
其中,tup
是要堆叠的数组序列,可以是元组、列表或者其他序列。
例如,可以使用vstack
将两个数组按行方向堆叠起来:
import numpy as np
a = np.array([[1, 2], [3, 4]])
# array([[1, 2],
# [3, 4]])
b = np.array([[5, 6]])
# array([[5, 6]])
c = np.vstack((a, b))
print(c)
# 输出:
# [[1 2]
# [3 4]
# [5 6]]
在这个例子中,我们先定义了两个数组a
和b
,然后使用vstack
将它们按行方向堆叠起来,得到一个3行2列的新数组c
。可以发现,b
数组在堆叠时被认为是一个2维数组,即使它只有1行。如果需要将它作为1维数组来处理,可以使用numpy.newaxis
来扩展一维,例如:
b = np.array([5, 6])
c = np.vstack((a, b[np.newaxis, :]))
print(c)
# 输出:
# [[1 2]
# [3 4]
# [5 6]]
这里使用b[np.newaxis, :]
将原来的1维数组变成了一个2维数组。
在Numpy中,一维数组和二维数组(也称为矩阵)是有区别的:
在代码中,一维数组可以定义为:
import numpy as np
a = np.array([1, 2, 3])
而二维数组可以定义为:
import numpy as np
b = np.array([[1, 2, 3],
[4, 5, 6]])
在Numpy中,一维数组也可以看作是特殊的二维数组。对于一个一维数组,其shape属性只有一个元素,表示数组的长度。例如,上面定义的a
数组的shape为(3,)
,表示它有3个元素。可以使用reshape
方法将一个一维数组变成一个二维数组,例如:
import numpy as np
a = np.array([1, 2, 3])
b = a.reshape((1, 3))
print(b) # 输出[[1 2 3]]
在这个例子中,我们将数组a
变成了一个1行3列的二维数组b
。需要注意的是,在Numpy中,对于一个多维数组,reshape方法不会改变它的元素顺序,只会改变它的维度。
pandas的concat()函数用于将两个或多个DataFrame或Series对象沿着一条轴(行或列)进行连接。concat()函数接受以下参数:
示例代码:
import pandas as pd
# 创建两个DataFrame
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']})
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7'],
'C': ['C4', 'C5', 'C6', 'C7'],
'D': ['D4', 'D5', 'D6', 'D7']})
# 按行连接两个DataFrame
result1 = pd.concat([df1, df2])
print(result1)
# 按列连接两个DataFrame,并忽略原始索引
result2 = pd.concat([df1, df2], axis=1, ignore_index=True)
print(result2)
输出结果:
A B C D
0 A0 B0 C0 D0
1 A1 B1 C1 D1
2 A2 B2 C2 D2
3 A3 B3 C3 D3
0 A4 B4 C4 D4
1 A5 B5 C5 D5
2 A6 B6 C6 D6
3 A7 B7 C7 D7
0 1 2 3 4 5 6 7
0 A0 B0 C0 D0 A4 B4 C4 D4
1 A1 B1 C1 D1 A5 B5 C5 D5
2 A2 B2 C2 D2 A6 B6 C6 D6
3 A3 B3 C3 D3 A7 B7 C7 D7
此代码没有任何效果,因为它只是将test_data数据帧的“eid”列映射到自身。它基本上返回相同的列,无需任何修改。也许代码中有错误或缺少一些附加信息。
pandas的corr
方法用于计算两个或多个Series或DataFrame之间的相关系数矩阵。
语法示例:
DataFrame.corr(method='pearson', min_periods=1)
参数说明:
返回值:
示例:
import pandas as pd
# 构造测试数据
data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1], 'C': [2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
# 计算相关系数
corr_matrix = df.corr()
# 输出结果
print(corr_matrix)
输出结果:
A B C
A 1.000000 -1.000000 0.993399
B -1.000000 1.000000 -0.993399
C 0.993399 -0.993399 1.000000
The .value_counts()
method is used to calculate a frequency count of unique values in a pandas Series. It returns a new Series containing counts of unique values in descending order of frequency.
For example, if you have a Series called colors
that contains the following values:
colors = pd.Series(['red', 'blue', 'green', 'red', 'red', 'yellow', 'blue', 'red', 'green'])
Running colors.value_counts()
would return:
red 4
blue 2
green 2
yellow 1
dtype: int64
This shows that the value ‘red’ appeared 4 times, ‘blue’ and ‘green’ each appeared 2 times, and ‘yellow’ appeared only once in the Series.
The .groupby()
method in pandas is used to group a DataFrame by one or more columns. Once a DataFrame is grouped, we can perform aggregate functions on the grouped data such as mean, sum, count, etc.
For example, let’s say we have a DataFrame called sales_data
containing sales information for different product categories and regions:
import pandas as pd
sales_data = pd.DataFrame({
'Category': ['Electronics', 'Books', 'Electronics', 'Books', 'Books', 'Electronics'],
'Region': ['North', 'South', 'North', 'South', 'North', 'South'],
'Sales': [1500, 2000, 1000, 2500, 800, 1200]
})
If we want to calculate the total sales by category, we can use the .groupby()
method as follows:
total_sales_by_category = sales_data.groupby('Category')['Sales'].sum()
This will group the sales_data
DataFrame by the ‘Category’ column and calculate the sum of the ‘Sales’ column for each category. The resulting total_sales_by_category
Series will look like:
Category
Books 5300
Electronics 3700
Name: Sales, dtype: int64
We can also group by multiple columns by passing a list of column names to the .groupby()
method. For example, if we want to calculate the total sales by category and region, we can use the following code:
total_sales_by_category_region = sales_data.groupby(['Category', 'Region'])['Sales'].sum()
This will group the sales_data
DataFrame by both the ‘Category’ and ‘Region’ columns and calculate the sum of the ‘Sales’ column for each combination of category and region. The resulting total_sales_by_category_region
Series will look like:
Category Region
Books North 800
South 3500
Electronics North 1500
South 1200
Name: Sales, dtype: int64