python数据分析学习笔记--numpy
2017-12-27 15:26
741 查看
import numpy as np
arr1=np.array(data1)
or
arr2=np.array([1,2,3,4],[5,6,7,8])
一般np.array为数组推断出一个较为合适的数据类型
除np.array外,还有一些其他函数可以新建数据,如:
函数 说明
array 将输入数据(列表和数组等其它序列转换为ndarray)
asarray 将输入转换为ndarray,若输入本身为ndarray不进行复制
arange 类似range,返回一个ndarray
ones,ones_like 根据指定的形状和dtype创建全1数组。
zeros,zeros_like 类似ones,产生全0数组
empty,empty_like 创建新数组,只分配内存空间,不放值
eye,identity 建立一个正方的NXN单位矩阵
arr1=np.array([1,2,3],dtype=np.float64)
通过astype转换数组dtype:
arr1=np.array([1,2,3,4,5])
float_arr=arr.astype(np.float64)
arr=np.array([[1,2,3],[4,5,6]])
arr-arr
array([[0,0,0],[0,0,0]])
数组和标量的运算,将标量值传播到每个元素。
[0,1,2,3,4,5,6,7,8,9]
arr[0]
0
arr[5]
5
arr[5:8]
[5,6,7] %对值的位置索引。包括左边位置,不包含右边位置。
arr_slice=arr[5:8] %将arr中5,6,7位置上的值包括位置赋给arr_slice
arr_slicep[1]=12345. %将12345赋给arr_slice中位置1。
arr %arr数组中位置6的值为12345
注:如果想得到ndarray切片的副本而非数据视图,需arr[5:8].copy()
二维数组切片(此处1行或2行等,都指位置)
arr[:2,1:] %shape为(2,2),意思为选取0与1行,1与2列。
arr[2] %选取2行,和所有列
arr[2,:]
arr[2:,:]
arr[1,:2]
arr[1:2,:2] %选取1行和0与1列
arr.T
进行矩阵计算时,可能经常用到该操作,如用np.dot计算矩阵内积
arr=np.random.randn(6,3)
np.dot(arr.T,arr)
对于高维度数组,需要一个轴编号数组才能对轴 进行转置
arr=np.arange(16).reshape((2,2,4))
arr.transpose((1,0,2))
np.sqrt(arr)
np.exp(arr)
np.maximum(x,y)
等等
ints=np.array([3,3,3,2,2,1,1,4,4])
np.unique(ints)
array([1,2,3,4])
intersect1d(x,y)计算x和y中公共元素,并返回有序结果
union1d(x,y)计算x和y并集,并返回有序结果。
y=np.array([[6.,23.],[-1.,7],[8,9]])
x.dot(y) %等于np.dot(x,y)
array([[28.,64.],[67.,181.]])
常用的numpy线性代数函数
diag以1维数组返回方阵对角线元素。
dot 矩阵乘法
trace 计算对角线元素和
det计算矩阵行列式
inv计算仿真逆
qr qr分解
solve解线性方程组Ax=b
lstsq计算Ax=b的最小二乘解
创建ndarray
data1=[6,7.5,8,0,1]arr1=np.array(data1)
or
arr2=np.array([1,2,3,4],[5,6,7,8])
一般np.array为数组推断出一个较为合适的数据类型
除np.array外,还有一些其他函数可以新建数据,如:
函数 说明
array 将输入数据(列表和数组等其它序列转换为ndarray)
asarray 将输入转换为ndarray,若输入本身为ndarray不进行复制
arange 类似range,返回一个ndarray
ones,ones_like 根据指定的形状和dtype创建全1数组。
zeros,zeros_like 类似ones,产生全0数组
empty,empty_like 创建新数组,只分配内存空间,不放值
eye,identity 建立一个正方的NXN单位矩阵
ndarray数据类型
可以在建立数组的时候设置arr1=np.array([1,2,3],dtype=np.float64)
通过astype转换数组dtype:
arr1=np.array([1,2,3,4,5])
float_arr=arr.astype(np.float64)
数组和标量的运算
数组与数组的运算,为数组中对应元素的运算,最后返回数组。arr=np.array([[1,2,3],[4,5,6]])
arr-arr
array([[0,0,0],[0,0,0]])
数组和标量的运算,将标量值传播到每个元素。
索引和切片
arr=np.arange(10)[0,1,2,3,4,5,6,7,8,9]
arr[0]
0
arr[5]
5
arr[5:8]
[5,6,7] %对值的位置索引。包括左边位置,不包含右边位置。
arr_slice=arr[5:8] %将arr中5,6,7位置上的值包括位置赋给arr_slice
arr_slicep[1]=12345. %将12345赋给arr_slice中位置1。
arr %arr数组中位置6的值为12345
注:如果想得到ndarray切片的副本而非数据视图,需arr[5:8].copy()
二维数组切片(此处1行或2行等,都指位置)
arr[:2,1:] %shape为(2,2),意思为选取0与1行,1与2列。
arr[2] %选取2行,和所有列
arr[2,:]
arr[2:,:]
arr[1,:2]
arr[1:2,:2] %选取1行和0与1列
数组转置和轴兑换
arr=np.arange(15).reshape((3,5))arr.T
进行矩阵计算时,可能经常用到该操作,如用np.dot计算矩阵内积
arr=np.random.randn(6,3)
np.dot(arr.T,arr)
对于高维度数组,需要一个轴编号数组才能对轴 进行转置
arr=np.arange(16).reshape((2,2,4))
arr.transpose((1,0,2))
通用函数:快速的元素级数组函数
arr=np.arange(10)np.sqrt(arr)
np.exp(arr)
np.maximum(x,y)
等等
唯一化及其他的集合逻辑
np.unique用于找出数组中唯一值并返回已排序值ints=np.array([3,3,3,2,2,1,1,4,4])
np.unique(ints)
array([1,2,3,4])
intersect1d(x,y)计算x和y中公共元素,并返回有序结果
union1d(x,y)计算x和y并集,并返回有序结果。
线性代数
x=np.array([[1.,2.,3.],[4.,5.,6.]])y=np.array([[6.,23.],[-1.,7],[8,9]])
x.dot(y) %等于np.dot(x,y)
array([[28.,64.],[67.,181.]])
常用的numpy线性代数函数
diag以1维数组返回方阵对角线元素。
dot 矩阵乘法
trace 计算对角线元素和
det计算矩阵行列式
inv计算仿真逆
qr qr分解
solve解线性方程组Ax=b
lstsq计算Ax=b的最小二乘解
相关文章推荐
- python数据分析学习笔记-Numpy-Matplotlib-Pandas
- 学习Python数据分析随手笔记【一】numpy数组的函数简单应用
- 学习Python数据分析随手笔记【二】numpy数组的属性
- python数据分析与挖掘学习笔记(5)-公司客户价值判断分析与聚类算法
- python数据分析与挖掘学习笔记(3)_小说文本数据挖掘part1
- Python数据分析--Numpy部分笔记
- 『利用Python进行数据分析学习』第四章:numpy基础学习
- 利用Pythonj进行数据分析学习笔记——第五章 pandas入门
- 学习笔记-python数据分析-环境配置
- 利用Python进行数据分析 学习笔记
- Python & 数据分析学习笔记[第1篇]
- Python学习笔记(一)——编程0基础数据分析进阶之路
- 利用python进行数据分析(学习笔记)
- Python学习笔记(0)——编程0基础数据分析进阶之路
- Python玩转数据分析学习笔记-03数据获取
- Python数据分析之numpy学习
- python数据分析与挖掘学习笔记(6)-电商网站数据分析及商品自动推荐实战与关联规则算法
- python数据分析入门学习笔记
- python 数据分析学习笔记 (第三章)
- python数据分析与挖掘学习笔记(4)-垃圾邮件自动识别