本篇博客所有示例使用Jupyter NoteBook演示。
Python数据分析系列笔记基于:利用Python进行数据分析(第2版)
目录
1.ndarray对象简介
NumPy最重要的一个特点就是其N维数组对象(ndarray),该对象是一个快速而灵活的大数据集容器。你可以利用这种数组对整块数据执行一些数学运算,即整个数组进行某种运算相当于对数组中的每个元素进行相同的运算(向量化运算),和标量元素间的运算语法是一样的。
下面直观理解NumPy是如何利用与标量值类似的语法进行批次运算的:
import numpy as np
data = np.random.randn(2,3) #生成一个2*3的2维随机数组 randn随机值符合正太分布
print(data)
print(data*10) #对数组*10 相当于对数组中的每个元素都*10 其他类似的运算同理
print(data+data) #数组中的每个元素加上自身
标准的NumPy用法是 import numpy as np,当然也可以使用 from numpy import *,但是不建议这么做。因为numpy的命名空间很大,包含许多函数,其中一些函数名字可能与Python内置的函数名相同,比如min,max等函数。为了区别,max()指的是Python内置的函数,而np.max()指的是numpy中内置的函数。
- 数组的属性
ndarray是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的。
每个数组都有一个shape属性,一个用于表示数组各个维度大小的元组;还有一个dtype属性,用于说明数组中元素的数据类型。
print(data.shape) #2维数组 第一个维度大小为2 第二个维度大小为3
print(data.dtype) #数组中元素的数据类型
Python数据分析系列博客,将会用多个篇幅来介绍NumPy数组的基本用法,对之后pandas数据分析打基础。虽然大多数数据分析工作不需要深入理解NumPy,但是精通面相数组的编程和思维方式是成为Python科学计算大牛的关键步骤。
本系列博客的‘数组’,‘NumPy数组’,‘ndarray’基本上指的都是一样东西,即ndarray对象。
2.创建ndarray
- array函数
创建数组最简单的办法是使用array函数。他可以接受一切序列型的对象(包括列表,其他数组等),然后产生一个新的含有输入数据的NumPy数组:
data1 = [6,7.5,8,0,1]
arr1 = np.array(data1) #以列表为输入 生成一维数组
print(arr1)
print("----------------------------")
data2 = [[1,2,3,4],[5,6,7,8]] #嵌套序列 由等长列表组成的列表
arr2 = np.array(data2) #以嵌套