数据分析前篇(numpy数组的简单使用)

导入numpy第三方库

import numpy as np

多维数组

numpy中的多维数组是numpy.ndarray类类型的对象,可用于表示数据结构中的任意维度的数组;numpy中的创建的数组在内存中时连续的

创建数组
np.arrange(起始,终止,步长):创建一维数组
np.array(任何可以被解释为数组的容器)
改变数组类型
ndarray.dtype属性表示元素的数据类型。通过dtype参数和astype()方法可以指定和修改元素的数据类型。
np.array(可迭代对象,dtype = nunpy数据类型)   #指定创建数组的数据类型
a = np.array([1,2,3],dtype = 'float')   #
a = a.astype(np.int)    #改变数组类型,注意必须进行重新赋值才可以完全改变数据类型
#a.astype(np.int)   并不能改变数据类型
查看和改变数组维度
narray.shape:查看数组类型
narray.reshape(新的维度)    #改变数组的维度
narray.ravel()  #将数组展开为一维数组
narr.flatten()  #将数组展开为一维数组
narray.T    #数组的转置
narray.transpose()  #数组的转置
 a = np.arange(1, 9)
 #array([1, 2, 3, 4, 5, 6, 7, 8])
 b = a.reshape(2, 4)
 '''
 # array([[1, 2, 3, 4],
  #     [5, 6, 7, 8]])
  '''
c = b.reshape(2, 2, 2)
'''
array([[[1, 2],
        [3, 4]],

       [[5, 6],
        [7, 8]]])
        '''
d = c.ravel() 
# array([1, 2, 3, 4, 5, 6, 7, 8])
e = c.flatten()
# array([1, 2, 3, 4, 5, 6, 7, 8])
f = b.reshape(2, 2, 2).copy()   #内容的深拷贝
'''
array([[[1, 2],
        [3, 4]],

       [[5, 6],
        [7, 8]]])
'''
a = np.arange(1,9)
a.reshape(2,4)

#array([[1, 2, 3, 4],
#       [5, 6, 7, 8]])
g = a.transpose()
#array([[1, 5],
#       [2, 6],
#       [3, 7],
#      [4, 8]])
f = a.T
#array([[1, 5],
#       [2, 6],
#       [3, 7],
#      [4, 8]])

数组索引和切片使用
数组索引的访问规则
数组[索引]
数组[行索引][列索引]
数组[页索引][行索引][列索引]
数组[页索引, 行索引, 列索引]
 a = np.array([[[1, 2],[3, 4]], [[5, 6],[7, 8]]])    #a为3*3*3数组
 a[0]相当于a
 # [[1, 2],[3, 4]]
 a[0][0]相当于a[0,0]
 # [1,2]
 a[0][0][0] 相当于a[0,0,0]
 #1
数组的切片规则
    数组[起始:终止:步长, 起始:终止:步长, ...] #对每个维度的操作使用','号隔开,切片的起始和终止和步长使用':'隔开
数组的组合和拆分
垂直组合拆分
numpy.vstack((上, 下))
numpy.vsplit(数组, 份数)->子数组集合
垂直方向上的合并指的是添加垂直维度,而不是垂直拼接
垂直方向拆分,指的是将垂直维度拆分为子矩阵
一般来讲是将按照页索引拆分和组合
a = np.arange(11, 20).reshape(3, 3)
b= np.arange(21,30).reshape(3,3)
'''
array([[11, 12, 13],
       [14, 15, 16],
       [17, 18, 19]])
array([[21, 22, 23],
       [24, 25, 26],
       [27, 28, 29]])
       '''
c = np.stack((a,b)) #c为2*3*3的矩阵,
'''
array([[[11, 12, 13],
        [14, 15, 16],
        [17, 18, 19]],

       [[21, 22, 23],
        [24, 25, 26],
        [27, 28, 29]]])
        '''
a, b = np.vsplit(c, 2)  #
水平拆分和组合
numpy.hstack((左, 右))
numpy.hsplit(数组, 份数)->子数组集合
在行索引方向上合并和拆分
c = np.hstack((a,b))
'''
c.shape = (3,6)
array([[11, 12, 13, 21, 22, 23],
       [14, 15, 16, 24, 25, 26],
       [17, 18, 19, 27, 28, 29]])
       '''
a, b = np.hsplit(c, 2)
深度拆分和组合
numpy.dstack((前, 后))
numpy.dsplit(数组, 份数)->子数组集合
利用原数组内容添加列索引或者按照列索引拆分
c = np.dstack((a, b))
'''
array([[[11, 21],
        [12, 22],
        [13, 23]],

       [[14, 24],
        [15, 25],
        [16, 26]],

       [[17, 27],
        [18, 28],
        [19, 29]]])
        '''
a, b = np.dsplit(c, 2)
array([[[11],
        [12],
        [13]],

       [[14],
        [15],
        [16]],

       [[17],
        [18],
        [19]]])
 array([[[21],
        [22],
        [23]],

       [[24],
        [25],
        [26]],

       [[27],
        [28],
        [29]]])

行列组合和拆分
numpy.column_stack((左, 右))
numpy.row_stack((上, 下))
与数组的简单拼接
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值