一、前言
- 博主是一个普普通通的大学生,没有很厉害的技术,写的内容都是不太正经的偏小白简单的,写的也是学校教过的知识消化后自己的见解,不是很学术研究的博文。
- 配置:Window 7旗舰版+64位操作系统+Anaconda3 Spyder(64-bit)
- 大数据挖掘经常用的包有:NumPy(科学计算库),SciPy(科学计算库),Pandas(数据分析处理库),Matplotlib(数据可视化库),Scikit-learn(机器学习库)。这篇博文主要是介绍NumPy。
- NumPy是一个开源的Python科学计算基础库,提供了大量的数值编程工具,可以方便地处理向量、矩阵等运算。
- NumPy包含:N维数组对象ndarray,广播功能函数,线性代数、傅里叶变换,随机数生成功能。
二、导入NumPy库
(1)方法一
import numpy
(2)方法二
from numpy import * #‘*’是全部的意思,从numpy里导入全部就是导入numpy的意思
(3)方法三
import numpy as np
#‘np’是导入模块的别名,可以换别的,但‘np’为习惯用法,用别名代码会更简洁
三、从Python中的列表、元组等类型创建ndarray数组
1.从列表类型创建
import numpy as np
x=np.array([0,1,2,3])
print(x)
假如想直接在Spyder页面右边输下图的话,需要提前在左边输入‘import numpy as np’并运行一遍
2. 从元组类型创建
import numpy as np
y=np.array((4,5,6,7))
print(y)
假如想直接在Spyder页面右边输下图的话,需要提前在左边输入‘import numpy as np’并运行一遍
3.从列表和元组混合类型创建
import numpy as np
z=np.array([[1,2],[3,4],(0.6,0.8)])
print(z)
假如想直接在Spyder页面右边输下图的话,需要提前在左边输入‘import numpy as np’并运行一遍。而且元组和列表的表达方式不一样,注意观察他的的括号。
四、使用NumPy中的函数创建ndarray数组
1.arange函数
(1)类似range函数,返回ndarray类型,元素从0到n-1。
(2)代码
np.arange(n) #n为个数
(3)例子
2.ones函数
(1)根据shape生成一个全是1数组,shape是元组类型。
(2)代码
np.ones(shape)
(3)例1
当shape为(3,4),所以出来的数组为三行四列全是1的ndarray数组
(4)例2
3.zeros函数
(1)根据shape生成一个全是0数组,shape是元组类型。
(2)代码
np.zeros(shape)
(3)例子
当shape为(4,3),所以出来的数组为四行三列全是0的ndarray数组
4.full函数
(1)用shape生成一个数组,每个元素值都是val
(2)代码
np.full(shape,val) #shape为数组,val的值根据需要进行替换
(3)例子
当shape为(2,3),val值为6;所以出来的数组为两行三列全是6的ndarray数组
5.eye函数
(1)创建一个正方的n*n的单位矩阵,对角线为1,其余为0
(2)代码
np.eye(n) #‘n’是单位矩阵的边长,可以根据需要进行替换
(3)例子
当n的值为3时,结果为一个正方的3*3的单位矩阵,对角线为1,其余为0的ndarray数组
五、使用NumPy中其他函数创建ndarray数组
1.linspace函数
(1)根据起止数据等间距地填充数据,形成数组
(2)格式:
(3)代码
np.linspace(start,stop,num,endpoint=“True/False”)
(4)例1
生成起始值为1,结束值为10,同等间距的四个样本
(5)例2
2.concatenate函数
(1)将两个或多个数组合并成一个新的数组
(2)代码
np.concatenta(数组1,数组2)
(3)例
从上面已知a,b数组
3.hstack函数
(1)水平堆叠序列的数组(列方向)
(2)代码:
import numpy as np
a=np.array([[1,2],[3,4]])
print('第一个数组:')
print(a)
b=np.array([[5,6],[7,8]])
print('第二个数组:')
print(b)
print('水平堆叠:')
c=np.hstack((a,b))
print(c)
(3)结果
4.vstack函数
(1)竖直堆叠序列的数组(行方向)
(2)代码
import numpy as np
a=np.array([[1,2],[3,4]])
print('第一个数组:')
print(a)
b=np.array([[5,6],[7,8]])
print('第二个数组:')
print(b)
print('竖直堆叠:')
d=np.vstack((a,b))
print(d)
(3)结果
5.hstack函数与vstack函数对比
(1)代码
import numpy as np
a=np.array([[1,2],[3,4]])
print('第一个数组:')
print(a)
b=np.array([[5,6],[7,8]])
print('第二个数组:')
print(b)
print('水平堆叠:')
c=np.hstack((a,b))
print(c)
print('竖直堆叠:')
d=np.vstack((a,b))
print(d)
(2)结果
六、获取数组属性
(1)代码
ndarray.itemsize:数组中每个元素的字节大小。例如,一个元素类型为float64的数组itemsize属性值为8(float64占用64个bits,每个字节长度为8,所以64/8,占用8个字节),又如,一个元素类型为complex32的数组item属性为4(32/8)。
(2)实例
————————————————————
持续更新…