Python的那些事---数据分析(一)---NumPy基础

NumPy是python数值计算中最为重要的基础包,大多数计算包都提供了基于NumPy的科学函数功能,将NumPy的数组对象作为数据交换的通用语。

NumPy的优点:

  1. ndarray,一种高效多维数组,提供了基于数组的便捷算术操作以及灵活的广播功能。
  2. 对所有数据进行快速的矩阵计算,而无须编写循环程序。
  3. 对硬盘中数组数据进行读写的工具,并对内存映射文件进行操作。
  4. 线性代数、随机数生成以及傅里叶变换功能。
  5. 用于连接NumPy到C、C++和FORTRAN语言类库的C语言API。

NumPy ndarray:多维数组对象

NumPy的核心特征之一是N-维数组对象---ndarray。ndarray是python中一个快速、灵活的大型数据集容器。数组运行你使用类似于标量的操作语法在整块数据上进行数学计算。

 1 import numpy as np 
 2 #生成随机数组
 3 data=np.random.randn(2,3)
 4 #输出随机数组
 5 print(data)
 6 #将数组整体*10输出
 7 print(data*10)
 8 #将两个data数组整体相加输出
 9 print(data+data)
10 
11 
12 [[-1.42334019 -0.00819673  1.83179575]
13  [-0.82282546  1.4418176  -0.35472472]]
14 [[-14.23340186  -0.08196733  18.3179575 ]
15  [ -8.22825455  14.41817598  -3.54724716]]
16 [[-2.84668037 -0.01639347  3.6635915 ]
17  [-1.64565091  2.8836352  -0.70944943]]

 表一  数组生成函数

函数名

描述
array 将输入数据(可以是列表、元组、数组以及其他序列)转换为ndarray,如不显示指明数据类型,将自动推断;默认复制所有的输入数据
asarray 将输入转换为ndarray,但如果输入已经是ndarray则不再复制
arange python内建函数range的数组版,返回一个数组
ones 根据给定形状和数据类型生成全1数组
ones_like 根据所给的数组生成一个形状一样的全1数组
zeros 根据给定形状和数据类型生成全0数组
zeros_like 根据所给的数组生成一个形状一样的全0数组
empty 根据给定形状生成一个没有初始化数值的空数组
empty_like 根据所给的数组生成一个形状一样的但没有初始化数值的空数组
full 根据给定的形状和数据类型生成指定数值的数组
full_like 根据所给的数组生成一个形状一样但内容是指定数值的数组
eye,identity 生成一个N×N特征矩阵(对角线位置都是1,其余位置是0)

NumPy数组算术

任何在两个等尺寸数组之间的算术操作都应用了逐元素操作的方式

 1 import numpy as np 
 2 #生成数组
 3 arr=np.array([[1.,2.,3.],[3.,5.,6.]])
 4 #打印数组
 5 print(arr)
 6 #乘法
 7 print(arr*arr)
 8 #减法
 9 print(arr-arr)
10 #带有标量计算的算术操作,会把计算参数传递给数组的每一个元素:
11 #倒数
12 print(1/arr)
13 #开平方
14 print(arr**0.5)
15 #同尺寸数组之间的比较,会产生一个布尔值数组
16 arr2=np.array([[0.,4.,1.],[7.,2.,12.]])
17 print(arr2)
18 #比较数组大小
19 print(arr2>arr)
20 
21 
22 
23 [[1. 2. 3.]
24  [3. 5. 6.]]
25 
26 [[ 1.  4.  9.]
27  [ 9. 25. 36.]]
28 
29 [[0. 0. 0.]
30  [0. 0. 0.]]
31 
32 [[1.         0.5        0.33333333]
33  [0.33333333 0.2        0.16666667]]
34 
35 [[1.         1.41421356 1.73205081]
36  [1.73205081 2.23606798 2.44948974]]
37 
38 [[ 0.  4.  1.]
39  [ 7.  2. 12.]]
40 
41 [[False  True False]
42  [ True False  True]]

基础索引与切片

一维数组的索引

 

posted @ 2020-05-16 13:53  学长的私房课  阅读(181)  评论(0编辑  收藏  举报