数据分析 numpy基础(一)

1.数组属性

ndarray(数组)是储存单一数据类型的多维数组

属性 说明
ndim

返回int。表示数组的维数

shape

返回tuple。表示数组的尺寸,(n,m)

size 返回int。表示数组元素总数,等于shape的乘积
dtype 返回data-type.描述数组元素的类型
itemsize 返回int。表示数组每个元素的大小

 

 

 

 

 

 

 

2. 数组创建

numpy.array(object,dtype=None,copy=True,ndmin=0)

arr1=np.array([1,2,3,4])#一维数组
arr2=np.array([1,2,3,4],[4,5,6,7],[7,8,9,10])#二维数组        
print(arr2.shape)#数组结构
print(arr2.dtype)#数组类型
print(arr2.size)#元素个数
arr2.shape=4,3#重新设置shape
print(np.arrange(0,1,0.1))#使用arange函数创建数组(无终值)
print(np.linspace(0,1,12))#(后面是个数,有终值)
print(np.logspace(0,2,20))#(创建等比数列,后面是个数)
print(np.zero(2,3))#生成2x3的零数组
print(np.eye(3))#生成3*3全为1的对角矩阵
print(np.diag([1,2,3,4])#生成1,2,3,4的对角矩阵
print(np.ones(5,3))#生成5*3全为1的矩阵

3.数组对象

df=np.dtype([("name",np.str_,40),("numitems",np.int64),("price",np.float64)])

创建一个长度为40的字符串来记录商品的名称,用64位整数记录商品的存库数量,用64位 的单精度浮点数来记录商品价格。

print(np.random.random(100))#无约束下生成随机数
print(np.random.rand(10,5))#生成服从均匀分布的随机数
print(np.random.randn(10,5))#生成服从正态分布的随机数
print(np.random.randint(2,10,size=[2,5]))#生成最小值不低于2最大值不大于5的2行5列数组

4.数组索引

一维数组:

arr=np.arrange(10)
print(arr[3:5])#包括arr[3]不包括arr[5]
print(arr[:5])#省略开始小标,从arr[0]开始
print(arr[-1])#从后面开始
print(arr[5:1:-2])#步长为负数,第一下标大于第二下标

 二维数组:

arr=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(arr[0,3:])#索引第0行中的第3行和第四行的元素
print(arr[1:,(0,2,3)])#索引第2、3行中第0、2、3列的元素

5.改变数组形状

arr=np.arange(12)
print(arr.reshape(3,4))#设置数组形状
print(arr.reshape(3,4).ndim)#维度为2
print(arr.ravel())#数组展平
print(arr.flatten())#向横展平
print(arr,flatten('F'))#纵向展平

6.组合数组

np.hstack((arr1,arr2))#横向组合
np.vstack((arr1,arr2))#纵向组合
np.concatenate((arr1,arr2,axis=1)#横向组合
np.concetenate((arr1,arr2),axis=0)#纵向组合

7.切割数组

np.hsplit(arr,2)#横向分割
np.vsplit(arr,2)#纵向分割
np.split(arr,2,axis=1)#横向切割
np.split(arr,2,axis=0)#纵向分割

 

你可能感兴趣的:(数据分析)