import NumPy
#1.开源的数值计算扩展库, 功能包括:创建n维数组(矩阵), 对数组进行函数运算, 数值积分等.
#2.他提供了两种基本的对象:
-ndarray:是储存单一数据类型的多维数组 #numpy的核心数据结构
-ufunc:是一种能够对数组进行处理的函数
NumPy常用的导入格式: import numpy as np
目录:
一, 创建数组对象
二, nd.array对象属性
三,array支持的大量操作和函数
一, 创建数组对象
#1.通常来说,ndarray是一个通用的同构数据容器,即其中的所有元素都需要相同的类型。利用array函数可创建ndarray数组。
1.利用array函数创建数组对象
-array函数的格式:np.array(object, dtype,ndmin)
array函数的主要参数及说明:
参数名称 | 说明 |
object | 接收array,表示想要创建的数组 |
dtype | 接收data-type,表示数组所需的数据类型,未给定则选择保存对象所需的最小类型,默认为None |
ndmin | 接收int,制定生成数组应该具有的最小维数,默认为None |
尝试使用numpy中的array函数,在IDLE (Python 3.7 32-bit)中举例:
以上是用numpy创建数组的演示
array对象
1.array就是数组,array对象可以是一维数组, 也可以是多维数组
2.Python中的list与array功能相似, 但array比list性能好, 包含数组元数信息, 大量的便捷函数
二array本身的属性
1.shape:返回一个元组,表示array的维度 #一维就是一个数字, 多维就是多个数字
- nidm:一个数字, 表示array的维度数目 #一维就是1, 三维就是3
- size: 一个数字, 表示array中所有数据元素的数目
- dtype:array中元素的数据类型 #看元素的数据类型, 只能有一种类型
创建array的方法
- 从Python的列表List和嵌套列表创建array
- 使用预定函数arange、 ones/ones_ ike、 zeros/zeros_ like、 empty/empty_ like、 flfull_/ like、 eye等函数创建 #创建数组全为1,全为0, 全为空,指定数值
- 生成随机数的np.random模块构建
三,array本身支持的大量操作和函数
直接逐元素的加减乘除等算数操作
更好用的面向多维的数组索引
求sum/mean等聚合函数
线性代数函数,比如求解逆矩阵、求解方程组 #NumPy是科学计算库
- 使用Python的list和嵌套list创建一维的array和二维的array
1.探索数组array的属性
#元组的形式(,)切记切记,总是忘记!
2.创建arange的便捷函数
-使用arange创建数字序列
arange([start,]stop[,step,],dtype = None) #与Python中range用法相同
-使用ones创建全是1的数组
np.ones(shape,dtype = None,order = ‘C’)
shape:int or tuple of ints Shape of the new array,e.g(2,3) or 2
我的理解:int输入一个向量输出一个元组
tuple of ints 输入一个元组输出一个矩阵
-使用ones_like创建形状相同的数组 #也是创建全是1的数组
ones_like(a,dtype = float,order = ‘C’)
我的理解:形状自己定,可以通过其他函数,例如array,总的来说就是让填充的数字全变为1
-使用zeros创建全是0的数组和使用zeros_like创建形状相同的数组
np.zeros_like(a, dtype = None)
#原理和ones和ones_like相同, 只不过全是0
-使用empty创建全是0的数组
empty(shape, dtype = float, order = ‘C’)
注意:数据是未初始化的,里面的值很可能是随机值不要用
我的理解:empty生成的数字是随机生成, 不可以用
-使用empty_like创建形状相同的数组
empty_like(prototype, dtype = None)
-使用full和full_like对创建的数组进行填充
np.full(shape,full_value,dtype = None,order =‘C’) #full_value填充的数字,使得数组全为这个数
a
-使用random模块生成随机数的数组
np.random.randn(d0, d1, ...,dn)
#np.random.randn(3, 2, 4) , 三个模块,两行四列的矩阵
***array本身支持的大量操作和函数
这些操作如果使用Python实现需要很多for循环, 用numpy数组很容易
A = np.arange(10).reshape(2, 5)
- shape
A + 1 #将array数组中的数字都+1
A*3
np.sin(A) #求array中数组的sin()结果
np.exp(A) #e的x次方x就是数组中的数值
***进行矩阵的计算
Eg.
A = np.random.randn(2, 5)
B = np.random.randn(2, 5)
A + B
A - B