numpy的核心数据结构,就叫做array就是数组。
(1)shape:返回一个元组,表示array的维度
(2)ndim:一个数字,表示array维度的数目
(3)size:一个数字,表示array中所有数据元素的数目
(4)dtype:array中元素的数据类型(array的元素必须都是同一种数据类型)
创建array的方法:
(1)从python的列表list和嵌套列表创建array
(2)使用预定函数array,ones/ones_like(全为1),zeros/zeros_like(全为0),empty/empty_like(全为空),full/full_like(全部定义为某个值),eye(创建一个矩形,对角线的元素全为1)
(3)生成随机数的np.random模块构建
array本身支持的大量操作和函数:
(1)直接逐元素的加减乘除等算数操作
(2)更好用的面向多维的数组索引
(3)求sum/mean等聚合函数
(4)线性代数函数,比如求解逆矩阵,求解方程组
1.使用Python的list和嵌套list创建一维的array和二维的array
import numpy as np
x=np.array([1,2,3,4,5,6,7,8])#创建一个一维数组,也就是Python中的单元list
X=np.array(
[
[1,2,3,4]
[5,6,7,8]
])#创建一个二维数组,也就是Python的嵌套list
2.探索数组array的属性
x.shape #------8
X.shape # ------(2,4)
x.ndim # ------1---维度数
X.ndim # --------2
x.size #-------8
X.size # ------8
x.dtype #------int(32)
X.dtype #------int(32)
3.创建array的便捷函数:
(1)使用arange创建数字序列 arange((start=0),stop,(step=1),dtype=None):
np.arange(10) #-------stop,创建一维数字,0---9
np.arange(0,10,2) #----start,stop,step,0,2,4,6,8
(2)使用ones创建全是1的数组 np.ones(shape,dtype=None,order='C') shape可以输入一个整形数字,亦可以输入一个元组(2,3):
np.ones(10) #----一维向量
np.ones((2,3)) #----2行三列
np.ones((2,3,4)) #---创建一个2行一列的然后2行一列中的每个元素是一个三行四列的元素
np.one((2,1,3,4)) #---创建一个2行一列的然后2行一列中的每个元素是一个三行四列的元素(记得每一行需要一个中括号,然后一个二维的需要一个中括号)
(3)使用ones_like创建形状相同的数组 np.ones_like(a,dtype=float,order='C')---就是创建一个跟a同样维度的array
np.ones_like(x) #----创建一个一维的列表
np.ones_like(X) #----创建一个二维的列表,两行四列
(4)zeros zeros_like和ones,ones_like操作基本相同,只不过一个是零一个是1
(5)empty empty(shape,dtype=float,order='C')注意:数据是未初始化的,里面的值可能是随机值不要用
(6)使用empty_like创建形状相同的数组 empty_like(a==prototype,dtype=None)
(7)使用full创建指定值的数组 np.full(shape,fill_value,dtype=None,order='C'):
np.full(10,666) #-----创建一个一维列表,列表有十个数字,都是666
np.full((2,4),333) #---创建一个2行4列的列表,都是333
(8)使用full_like创建形状相同的数组 np.full_like(a,fill_value,dtype=None)
(9)使用random模块生成随机数的数组 randn(d0,d1,d2……dn)
np.random.randn()
若没有参数,则生成一个随机数
当size是n个数时,m_1,m_2,…,m_n,若n为奇数,则返回一个m_1行1列的张量,其中每个元素是一个m_2行m_3列的张量,…,又其中每个元素是一个m_n-1行m_n列的张量,最小元素的每一行服从正态分布
当size是n个数时,m_1,m_2,…,m_n,若n为偶数,则返回一个m_1行m_2列的张量,其中每个元素是一个m_3行m_4列的张量,…,
4.array本身支持的大量操作和函数
np.arange(10).reshape(2,5) #------A=[[0,1,2,3,4],[5,6,7,8,9]]
A.shape # -------(2,5)
A+1 # ----给每个元素都加一
A*3 #-----每个元素都乘三
np.sin(A) #----求每个元素的sin函数
np.exp(A) # e的每个元素次方
B=np.random.randn(2,5)
A+B A-B #(因为形状相同,可以直接进行加减,就是对应每个元素的加减)