数组
[In ]:
from datascience import *
path_data = '../../../assets/data/'
虽然 Python 中有多种集合类型,但本课程中我们主要使用数组。我们已经看到 make_array 函数可以用来创建数字数组。
数组也可以包含字符串或其他类型的值,但单个数组只能包含单一类型的数据。(将不同类型的数据混在一起通常也没有意义。)例如:
[In ]:
english_parts_of_speech = make_array("noun", "pronoun", "verb", "adverb", "adjective", "conjunction", "preposition", "interjection")
english_parts_of_speech
array(['noun', 'pronoun', 'verb', 'adverb', 'adjective', 'conjunction',
'preposition', 'interjection'], dtype='<U12')回到温度数据,我们创建了 1850 年、1900 年、1950 年和 2000 年前后几十年间的日均高温数组。
[In ]:
baseline_high = 14.48
highs = make_array(baseline_high - 0.880,
baseline_high - 0.093,
baseline_high + 0.105,
baseline_high + 0.684)
highs
array([13.6 , 14.387, 14.585, 15.164])数组可以在算术表达式中使用,对其内容进行计算。当数组与单个数字组合时,该数字会与数组的每个元素进行运算。因此,我们可以通过编写熟悉的转换公式,将所有温度转换为华氏度。
[In ]:
(9/5) * highs + 32
array([56.48 , 57.8966, 58.253 , 59.2952])
数组还有方法,这些方法是对数组值进行操作的函数。一组数字的 mean 是其平均值:总和除以长度。下面示例中的每对括号都是调用表达式的一部分;它调用一个无参数函数,对名为 highs 的数组执行计算。
[In ]:
highs.size
4[In ]:
highs.sum()
57.736000000000004[In ]:
highs.mean()
14.434000000000001数组上的函数
numpy 包(在程序中缩写为 np)为 Python 程序员提供了便捷而强大的函数,用于创建和操作数组。
[In ]:
import numpy as np
例如,diff 函数计算数组中每对相邻元素之间的差值。diff 的第一个元素是第二个元素减去第一个元素。
[In ]:
np.diff(highs)
array([0.787, 0.198, 0.579])完整 Numpy 参考文档 详尽列出了这些函数,但只有一小部分常用于数据处理应用。这些函数被分组到 np 内的不同子包中。学习这些词汇是学习 Python 语言的重要组成部分,因此在完成示例和问题时,请经常参考此列表。
不过,你不需要记住这些。请将其作为参考使用。
以下每个函数都以数组为参数并返回单个值。
| 函数 | 描述 |
|---|---|
np.prod |
将所有元素相乘 |
np.sum |
将所有元素相加 |
np.all |
测试是否所有元素都为真值(非零数字为真) |
np.any |
测试是否有元素为真值(非零数字为真) |
np.count_nonzero |
计算非零元素的数量 |
以下每个函数都以数组为参数并返回一个值数组。
| 函数 | 描述 |
|---|---|
np.diff |
相邻元素之间的差值 |
np.round |
将每个数字四舍五入到最接近的整数 |
np.cumprod |
累积乘积:对每个元素,乘以之前所有元素 |
np.cumsum |
累积和:对每个元素,加上之前所有元素 |
np.exp |
对每个元素取指数 |