python数据分析基础之Numpy库详解
Posted 温柔且上进c
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
- 水平分割 下面将把数组沿着水平方向分割为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库详解的主要内容,如果未能解决你的问题,请参考以下文章