Python数据处理(2)-NumPy的ndarray

NumPy是Python中众多科学软件包的基础。它提供了一个特殊的数据类型ndarray,其在向量计算上做了优化。这个对象是科学数值计算中大多数算法的核心。下面,我们将介绍ndarray的一些基本操作。

1.创建ndarray对象

创建多维数组最简单的方法就是使用np.array函数,它接受序列型的对象(包括列表和元组)以及嵌套序列。

np.arange函数和内置的range类似,只是返回的是一个ndarray对象而不是列表。

2.基本属性:shape和dtype

ndarray对象包括了两个最基本的属性,一个是shape(表示各维度大小),一个是dtype(表示数组数据类型)。

我们可以用reshape函数改变数组的shape。常用的数组数据类型包括int32和float32,使用array创建多维数组时会自行选择合适的数据类型。当然,你可以通过astype函数显示地修改数据类型。

3.数组和标量之间的运算

ndarray的向量运算使你不用编写循环就可以对数据进行批量运算。大小相等的数组之间的任何算数运算都会将运算应用到元素级。同样,数组和标量的算数运算也会将那个标量值传播到每个元素。

除了一些简单的运算外,通用函数提供元素级的函数运算,常见的包括绝对值、平方根、指数和对数等。

4.索引和切片

和列表对象一样,ndarray提供了非常方便的索引和切片机制。对于高维度数组,你可以传入不同维度的索引来获取元素,如果省略后面的索引,则返回的对象会是一个维度低一点的ndarray对象。

同样,对于高纬度数组,你可以在一个轴或多个轴上进行切片,你甚至可以在不同轴上混合使用索引和切片操作。

另外,通过布尔型索引设置值是一种经常使用的操作。布尔型数组中的元素是布尔值,大小和需要索引的数组相同,返回布尔值为True的位置的元素生成的ndarray副本。

本文来自企鹅号 - 全球大搜罗媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JavaEdge

Java中类型参数“<T>”和无界通配符“<?>”的区别

List<T>最应该出现的地方,应该是定义一个泛型List容器 但List是库里自带的容器,看看ArrayList的源码头一行:

38410
来自专栏ACM算法日常

Find the nth digit(二分查找) - HDU 1597

...

10420
来自专栏数据结构与算法

P3742 umi的函数

题目背景 umi 找到了一个神秘的函数 f。 题目描述 这个函数接受两个字符串 s1,s2。这些字符串只能由小写字母组成,并且具有相同的长度。这个函数的输出是另...

36960
来自专栏web前端教室

js数组去重的思路与缓动公式

前端开发的面试中,至少有一类题是必出的,那就是去重。什么叫去重呢?就是把一组字符串中重复出现的,都删除掉。 这种题重要的是解决的思路要正确,思路正确的话其实也很...

25680
来自专栏数据结构与算法

06:整数奇偶排序

06:整数奇偶排序 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB描述 给定10个整数的序列,要求对其重新排序。排序要求: 1...

45160
来自专栏数据结构与算法

P3372 【模板】线段树 1 区间查询与区间修改

题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含两个...

32760
来自专栏nummy

numpy入门

numpy中最主要的对象是同质数组array,也就是说数组中的元素类型都是一样的。数组的维度也称之为axis,axis的的个数称之为秩rank。

13620
来自专栏五分钟学算法

每天一算:Evaluate Reverse Polish Notation

我们会在每天早上8点30分准时推送一条LeetCode上的算法题目,并给出该题目的动画解析以及参考答案,每篇文章阅读时长为五分钟左右。

8710
来自专栏Java后端生活

MySQL(十四)DDL之数据类型

17350
来自专栏五分钟学算法

五分钟看懂一个高难度的排序:堆排序

堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。

12020

扫码关注云+社区

领取腾讯云代金券