数据科学---使用Numpy进行数学计算

| 1.1 Numpy是什么?

NumpyNumerical Python)是用于处理数值数据的Python库。

Numpy包括可以执行各种数学运算的函数和数据结构。

要使用Numpy,我们首先需要导入它。

import numpy as np

Tips :np是用于导入numpy的最常用名称。


| 1.2 Numpy数组

在Python中,列表(list)用于存储数据。

Numpy提供了一种用于对数据执行操作的数据结构。

Numpy数组比列表更快、更紧凑。

可以使用np.array()函数创建Numpy数组,并为其提供一个列表作为参数。

x = np.array([1, 2, 3, 4])

现在,x是一个包含四个值的numpy数组。我们可以使用从0开始的索引访问它的元素。

print(x[0])  # 1

Tips :Numpy数组是同构的,这意味着它们只能包含一种数据类型,而列表可以包含多种不同类型的数据。

        

| 2.1 使用Numpy数组

Numpy数组通常被称为ndarrays,它代表N维数组(N-dimensional array)。因为它们可以有多个维度。

For example:

x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])print(x)print(x[1][2])

Tips :上述代码创建了一个二维数组,它有3列和3行,并输出第2行和第3列的值。

(列表的索引是从零开始的哦!)


数组具有可以使用点操作符访问的属性

  • ndim  :  返回数组的维数

  • size    : 返回数组元素的总数

  • shape : 返回一个整数元组,指示沿数组每个维度存储的元素数。

For example:

x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])print(x.ndim)print(x.size)print(x.shape)

Tips :因此,示例中的数组有2个维度,9个元素,并且是一个3x3矩阵(3行3列)。

| 2.2 Numpy数组方法

我们可以使用

np.append()np.delete()np.sort()函数添加、删除、和排序数组。​​​​​​​

import numpy as np
x = np.array([2, 1, 3])
x = np.append(x, 4)x = np.delete(x, 0)x = np.sort(x)
print(x)

Tips :可以运行一下上面的代码,看看结果,判断一下传入的参数是具体的值还是索引呢?


我们还可以使用np.arange()创建一个包含一系列均匀间隔的数组(类似于Python中的range):(如果你不了解的话可以参见:python基础----控制结构( 三 ))

For example:​​​​​​​

x = np.arange(2, 10, 3)print(x)  # [2, 5, 8]

| 3.1 改变数组形状

回想一下,形状是指数组中的行数和列数。

例如,让我们考虑以下数组:

x = np.arange(1, 7)

这是一个一维数组,包含 6 个元素。NumPy 允许我们使用 reshape() 函数更改数组的形状。例如,我们可以将一维数组更改为 3 行 2 列的数组:​​​​​​​

z = x.reshape(3, 2)print(z)

Tips :使用reshape函数时,要生成的数组需要与原始数组具有相同数量的元素。

reshape也可以做相反的事情:取一个二维数组并从中创建一个一维数组:​​​​​​​

x = np.array([[1, 2], [3, 4], [5, 6]])z = x.reshape(6)

Tips :使用 flatten() 函数可以获得相同的结果。

| 4.1 索引和切片(index & slice)

Numpy数组可以像Python列表一样使用索引和切片

python切片参见:python基础----控制结构( 三 )

For example:​​​​​​​

x = np.arange(1, 10)print(x[0:2])print(x[5:])print(x[:2])print(x[-3:1])

| 4.2 条件(Conditions)

你可以提供一个条件作为索引来选择满足给定条件的元素。

例如,让我们选择小于4的元素:​​​​​​​

x = np.arange(1, 10)print(x[x < 4])

Tips :可以使用 &(and) 和 |(or)运算符组和条件​​​​​​​​​​​​​​

x = np.arange(1, 10)print(x[(x > 5) & (x % 2 == 0)])

Tips :条件也可以分配给一个变量,该变量将是一个布尔值数组,显示数组中的值是否满足条件:y = (x>5)  & (x%2==0)

| 5.1 数组操作(operations)

使用数组很容易执行基本的数学运算。

例如,要查找所有元素的综合,我们使用sum()函数:​​​​​​​

x = np.arange(1, 10)print(x.sum())

类似地、min()和max()可用于获取最小和最大元素。

我们还可以在数组和单个数字之间执行操作。例如,我们可以将所有元素乘以2:​​​​​​​

x = np.arange(1, 10)y = x*2

Tips :这种操作方式NumPy会理解应该对每个元素执行给定的操作,这称为广播

| 5.2 统计数据(statistics)

还记得我们在前一个内容《数据科学---赋能未来,Python崛起》中学到的统计知识么?这些包括平均值、中位数、方差和标准偏差。

Numpy数组具有返回这些值的内置函数:​​​​​​​

x = np.array([14, 18, 19, 24, 26, 33, 42, 55, 67])
print(np.mean(x))  # 平均数print(np.median(x))  # 中位数print(np.var(x))  # 方差print(np.std(x))  # 标准差​​​​​​​

| 6.1 写在最后

本节给大家介绍了数据科学三剑客之一的numpy。涉及到了常见的属性和函数,并且介绍了常见的数学操作。后续我们会继续介绍pandas和matplotlib。希望大家还是动手做一做,有问题可以私信我,欢迎交流和提出您的宝贵意见。

你要偷偷学Python,然后惊艳所有人。

-END-

感谢大家的关注

   你关心的,都在这里

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值