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

Posted 温柔且上进c

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python数据分析基础之Numpy库详解相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

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

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

数组的属性

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

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

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

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

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

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

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

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

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

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

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

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

  • 下面图片包含上述所讲的数组属性:

数组的转换

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

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

以上是关于python数据分析基础之Numpy库详解的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

学机器学习,不会数据分析怎么行?之NumPy详解

python基础之numpy.reshape详解