当前位置: 首页 > 科技 > 人工智能 > Python数据分析类库系列-Numpy之多维数组ndarray_腾讯新闻

Python数据分析类库系列-Numpy之多维数组ndarray_腾讯新闻

天乐
2020-07-26 03:31:09 第一视角

NumPy之于数值计算特别重要的原因之一,是因为它可以高效处理大数组的数据。

这是因为:

NumPy是在一个连续的内存块中存储数据,独立于其他Python内置对象。NumPy的C语言编写的算法库可以操作内存,而不必进行类型检查或其它前期工作。比起Python的内置序列,NumPy数组使用的内存更少。

NumPy可以在整个数组上执行复杂的计算,而不需要Python的for循环。

接下来我们通过一组实例来了解Numpy算法的优势

import numpy as np

my_arr = np.arange(1000000)my_list = list(range(1000000))

%time for _ in range(10): my_arr2 = my_arr * 2

out: Wall time: 28.1 ms

%time for _ in range(10): my_list2 = [x * 2 for x in my_list]

out: Wall time: 1.06 ms

Numpy的多维数组 -- ndarray

NumPy最重要的一个特点就是其N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。你可以利用这种数组对整块数据执行一些数学运算,其语法跟标量元素之间的运算一样。

要明白Python是如何利用与标量值类似的语法进行批次计算,我先引入NumPy,然后生成一个包含随机数据的小数组:

import numpy as np

data = np.random.randn(2,3)data

out:

array([[-0.14098006, -4.19075358, -1.19162879],

[-1.29808759, 0.04365887, 0.81590587]])

然后进行数学运算

data * 10

out:

array([[ -1.40980064, -41.9075358 , -11.91628791],

[-12.98087592, 0.43658872, 8.15905871]])

data + data

out:

array([[-0.28196013, -8.38150716, -2.38325758],

[-2.59617518, 0.08731774, 1.63181174]])

第一个例子中,所有的元素都乘以10。第二个例子中,每个元素都与自身相加。

笔记:在本章及全书中,我会使用标准的NumPy惯用法import numpy as np。你当然也可以在代码中使用from numpy import *,但不建议这么做。numpy的命名空间很大,包含许多函数,其中一些的名字与Python的内置函数重名(比如min和max)。

ndarray是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的。每个数组都有一个shape(一个表示各维度大小的元组)和一个dtype(一个用于说明数组数据类型的对象):

data.shape

out:

(2, 3)

data.dtype

out:

dtype('float64')

本系列内容将会介绍NumPy数组的基本用法,这足以满足后续内容的应用,虽然大多数数据分析工作不需要深入理解NumPy,但是精通面向数组的编程和思维方式是成为Python科学计算牛人的一大关键步骤。

下期我们将分享,如何创建一个多维数组ndarry。如果喜欢,请点赞收藏,您的支持是我最大的动力!一起加油!

提示:支持键盘“← →”键翻页
为你推荐
加载更多
意见反馈
返回顶部