Numpy 数组导向编程 上|学习笔记

简介: 快速学习 Numpy 数组导向编程 上

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践Numpy 数组导向编程 上】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15376


Numpy 数组导向编程 上

 

主要是学这里面的第二个内容和第三个内容,第一个内容的话,大家在学习之前应该全部复习一遍,第4个内容比较简单,就是 Numpy 里面的数据怎么保存怎么加载。

条件表达式的操作

1、首先要加载 Numpy 这个包

2、条件表达式的操作

这个操作非常方便,它主要适用 Numpy 里面的一个 numpy . where 函数。能够返回一个叫做三相表达式,相当于是 x if condition else y ,在 Python 基础知识里面给大家提供的那个4个文件,然后给同学们讲到第三个就是Python范儿编程。所以那个内容的话,要复习一遍。这里有一个条件表达式的一个三相表达式的一个概念。

⑴这里创建一个 x,y 的一个数组,然后观察这个条件的比较, np . array 然后它里面的是True False True True False ,给了这样一个条件值。先运行一下,假设如果这个condition里面的为 True ,就去x数组里面找定值,否则是y数组里找定值。

如果要满足这个要求,怎么解决这个问题?可以用三相表达式来解决。注意看 x if c else y

这种语法表达式,这是一个三项表达式。如果 c 是处的话就 x ,否则就是 y 。注意这就放在一个中括号里面,它又是一个列表解析式。列表解析式在 for 前面的话应该是元素或者元素上的操作。然后 for 后面是 for in 遍历,就是在里面做迭代。然后 for 后面不一定是一个元素甚至三个元素。

上面涉及到 x 、 y 和 c ,所以 x 和 y 和 c  in zip 函数,花样传参就是拉链函数。然后是 x 这个数组, Y 这个数组,然后这个条件,三个数组里面对应的元素拉在一起构成一个元素就是一个小元组。那么 x y z 就可以比较了。如果 c 是真的话, True 那么就是 x 。取 x ,否则就是取 y 。

运行结果如下:第一个是 True ,所以显示1.1。第二个 False ,显示 y 是2.2。对应的看一下。

这就是 Numpy 强大的地方,可以利用这个 where 函数去实现刚刚上面的这个三相表达式的功能。刚刚是三相表达式,还没有用 where 。

⑵ where 函数

刚刚那个做法会有些问题的:首先对于很大的数组的话,因为上面的方法去比较会非常慢。然后对于一些多位数组可能不起作用。但用 numpy . where 函数的话就很方便。

直接用 numpy . where 。 where 里面跟三个参数,第一个是条件,然后两个是对应的数组。条件是真的话,就取第一个数组里面对应的元素,否则就是第二个数组里面对应的元素,形式很简洁。运行如下:

这个结果对照上面的结果,可以发现这个 where 的强大。因为在这个文本挖掘课里面讲的这个 Python 数据科学包。课程讲的就是提升部分,所以基础部分的话大家自行复习。

⑶ np.where 中第二个和第三个参数不用必须是数组。 where 在数据分析中一个典型的用法是是基于一个数组,产生一个新的数组值(例如上面的 result )。假设我们有一个随机数字生成的矩阵,我们想要把所有的正数变为2,所有的负数变为-2。用where的话会非常简单: numpy . where 。这个内容的话一定要记住的,在做数据分析、数据挖掘、文本挖掘里面。这是功能非常强大的。

⑷例子加深:

①建一个4行4列的随机数,也是一个 numpy 的 np . arr 。 numpy 的多维数组对象,然后让这个arr大于0。

image.gif执行完以后得到的是一个布尔值,那么如果元素是大于0的话就True,否则就是false。

image.gif② np . where 函数, arr 大于0。然后就是取2,否则就是-2。大于0的那个元素就是True的地方,就是取-2。

image.gif③可以结合这个标量和数组,那比如说只把整数变成2,其他的数字不变。

np . where ( arr ),arr大于0的话就是2。否则还是原来的 arr ,注意这样一个表达方法。

image.gif执行:

image.gif大于0的值是2,否则还是原来那个值。这种在经常做数据的各种筛选处理里面经常用到,所以这是一个numpy强大的地方

相关文章
|
2月前
|
Python
Numpy学习笔记(一):array()、range()、arange()用法
这篇文章是关于NumPy库中array()、range()和arange()函数的用法和区别的介绍。
56 6
Numpy学习笔记(一):array()、range()、arange()用法
|
2月前
|
索引 Python
Numpy学习笔记(三):np.where和np.logical_and/or/not详解
NumPy库中`np.where`和逻辑运算函数`np.logical_and`、`np.logical_or`、`np.logical_not`的使用方法和示例。
157 1
Numpy学习笔记(三):np.where和np.logical_and/or/not详解
|
2月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
83 10
|
2月前
|
Python
Numpy学习笔记(四):如何将数组升维、降维和去重
本文介绍了如何使用NumPy库对数组进行升维、降维和去重操作。
46 1
|
2月前
|
Python
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
NumPy库中的`np.concatenate`和`np.append`函数,它们分别用于沿指定轴拼接多个数组以及在指定轴上追加数组元素。
34 0
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
|
2月前
|
机器学习/深度学习 索引 Python
Numpy学习笔记(二):argmax参数中axis=0,axis=1,axis=-1详解附代码
本文解释了NumPy中`argmax`函数的`axis`参数在不同维度数组中的应用,并通过代码示例展示了如何使用`axis=0`、`axis=1`和`axis=-1`来找到数组中最大值的索引。
114 0
Numpy学习笔记(二):argmax参数中axis=0,axis=1,axis=-1详解附代码
|
2月前
|
Python
使用 NumPy 进行数组操作的示例
使用 NumPy 进行数组操作的示例
37 2
|
2月前
|
PyTorch 算法框架/工具 Python
Pytorch学习笔记(十):Torch对张量的计算、Numpy对数组的计算、它们之间的转换
这篇文章是关于PyTorch张量和Numpy数组的计算方法及其相互转换的详细学习笔记。
38 0
|
3月前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
84 0
|
4月前
|
机器学习/深度学习 数据处理 计算机视觉
NumPy实践宝典:Python高手教你如何轻松玩转数据处理!
【8月更文挑战第22天】NumPy是Python科学计算的核心库,专长于大型数组与矩阵运算,并提供了丰富的数学函数。首先需安装NumPy (`pip install numpy`)。之后可通过创建数组、索引与切片、执行数学与逻辑运算、变换数组形状及类型、计算统计量和进行矩阵运算等操作来实践学习。NumPy的应用范围广泛,从基础的数据处理到图像处理都能胜任,是数据科学领域的必备工具。
63 0