python数据分析基础之Numpy库详解(三)

Numpy库基础

    • 数组的分割
    • 数组的属性
    • 数组的转换

  • 第一节:Numpy中数组的介绍 python数据分析基础之Numpy库详解(一)
  • 第二节:数组的部分操作(索引与切片、维度的改变、数组的组合)python数据分析基础之Numpy库详解(二)

数组的分割

  • NumPy数组可以进行水平、垂直或深度分割,相关的函数有hsplit、vsplit、dsplit和
    split
    。我们可以将数组分割成相同大小的子数组,也可以指定原数组中需要分割的位置

  • 首先使用arange函数创建两个数组并使用reshape方法将数组的维度改为3×3:

import numpy as np
arr_one = np.arange(9).reshape((3, 3))
arr_two = arr_one * 2

python数据分析基础之Numpy库详解(三)_第1张图片

  • 水平分割 下面将把数组沿着水平方向分割为3个相同大小的子数组:
np.hsplit(arr_one, 3)

python数据分析基础之Numpy库详解(三)_第2张图片

  • 对同样的数组,调用split函数并在参数中指定参数axis=1,对比一下结果:
np.split(arr_one, 3, axis=1)

python数据分析基础之Numpy库详解(三)_第3张图片

  • (2) 垂直分割 vsplit函数将把数组沿着垂直方向分割:
np.vsplit(arr_one, 3)

python数据分析基础之Numpy库详解(三)_第4张图片

  • 同样,调用split函数并在参数中指定参数axis=0,也可以得到同样的结果:
np.split(arr_one, 3, axis=0)

python数据分析基础之Numpy库详解(三)_第5张图片

  • (3) 深度分割 dsplit函数将按深度方向分割数组。我们先创建一个三维数组:
arr_three = np.arange(27).reshape((3, 3, 3))

python数据分析基础之Numpy库详解(三)_第6张图片

  • 再使用dsplit函数进行分隔
np.dsplit(arr_three, 3)

python数据分析基础之Numpy库详解(三)_第7张图片

数组的属性

  • ndim属性,给出数组的维数,或数组轴的个数:
arr_one.ndim

python数据分析基础之Numpy库详解(三)_第8张图片

  • size属性,给出数组元素的总个数,如下所示:
arr_one.size

python数据分析基础之Numpy库详解(三)_第9张图片

  • itemsize属性,给出数组中的元素在内存中所占的字节数:
arr_one.itemsize

python数据分析基础之Numpy库详解(三)_第10张图片

  • 整个数组所占的存储空间,用nbytes属性来查看。这个属性的值其实
    就是itemsize和size属性值的乘积:
arr_one.nbytes
arr_one.size * arr_one.itemsize

python数据分析基础之Numpy库详解(三)_第11张图片

  • T属性的效果和transpose函数一样,如下所示:
arr_one.transpose()
arr_one.T

python数据分析基础之Numpy库详解(三)_第12张图片

  • 对于一维数组,其T属性就是原数组
arr_four = np.array([1, 2, 3, 4])
arr_four.T

python数据分析基础之Numpy库详解(三)_第13张图片

  • 在NumPy中,复数的虚部是用j表示的。例如,我们可以创建一个由复数构成的数组:
arr_five=np.array([1.j + 1, 2.j + 3])

python数据分析基础之Numpy库详解(三)_第14张图片

  • real属性,给出复数数组的实部。如果数组中只包含实数元素,则其real属性将输出原 数组:
arr_five.real

python数据分析基础之Numpy库详解(三)_第15张图片

  • imag属性,给出复数数组的虚部:
arr_five.imag

python数据分析基础之Numpy库详解(三)_第16张图片

  • 如果数组中包含复数元素,则其数据类型自动变为复数型:
arr_five.dtype
arr_five.dtype.str

python数据分析基础之Numpy库详解(三)_第17张图片

  • flat属性将返回一个numpy.flatiter对象,这是获得flatiter对象的唯一方式——我
    们无法访问flatiter的构造函数。这个所谓的“扁平迭代器”可以让我们像遍历一维数
    组一样去遍历任意的多维数组,如下所示:
arr_one_flat=arr_one.flat
for item in arr_one_flat:
    print(item)
arr_one_flat

python数据分析基础之Numpy库详解(三)_第18张图片

  • 我们还可以用flatiter对象直接获取一个数组元素或者获取多个元素:

python数据分析基础之Numpy库详解(三)_第19张图片

  • 下面图片包含上述所讲的数组属性:
    python数据分析基础之Numpy库详解(三)_第20张图片

数组的转换

  • 我们可以使用tolist函数NumPy数组转换成Python列表
  • (1) 转换成列表:
arr_one.tolist()

python数据分析基础之Numpy库详解(三)_第21张图片

  • (2) astype函数可以在转换数组时指定数据类型:
arr_one.astype(float)

python数据分析基础之Numpy库详解(三)_第22张图片

你可能感兴趣的:(数据分析基础,数据分析,python,数据挖掘)