数组的创建
1.一维数组
array(),第一个参数可为元组,列表,值为相同数据类型;通常是人为的输入。
2.二维数组
也是用array(),第一个参数传入嵌套的元组或列表,eg,array(((1),(2))),注意括号(中括号[])数量。
高维数据类似。
3.特殊数组
①固定范围的随机数组,arange(start,stop,step),开始,结束,步长
step不写默认步长为1,start不写默认从0开始。
②数组值全为0,zeros(),zeros(3),zeros((2,3))#2行3列,empty()空数组
③数组值全为1,ones(),用法同上
④单位矩阵,eye()
4.生成随机数组
①生成(0,1)之间的随机数组,np.random.rand(),~(2),~(2.3)#生成两行三列,注意括号数量
②生成满足正态分布的数组,np.random.randn(),用法同上
③np.random.randint(low,high,size)与np.arange()类似,生成一定范围的随机数组,大小为size的[low,high)左闭右开整数
~(1,5,6)#生成[1,5)长度为6的随机数组
~(5,6)#长度为6的[0,5)
~(5,size=(2,3))#生成[0,5)的两行三列
④打乱数组顺序,np.random.shuffle()
⑤np.random.choice(a,size,replace,p)#从a中随机采样size个,a为整数时是生成数组。try if problem
数组的基本属性
1.查看a数组有几行几列,a.shape,注意,这里shape不需要带括号,下几个相同
2.查看a数组有多少个元素,a.size
3.查看a数组的类型,a.dtype
4.查看a数组的维度,a.ndim
5.将a数组转置,a.T
6.将多为数组变成一位数组,a.ravel()和a.flatten()
ravel()改变元素的值会影响原始数组
flatten()改变元素的值不会影响原始数组
>>> x = np.array([[1, 2], [3, 4]]) >>> x.flatten()[1] = 100 >>> x array([[1, 2], [3, 4]]) # flatten:返回的是拷贝 >>> x.ravel()[1] = 100 >>> x array([[ 1, 100], [ 3, 4]])