Numpy的基础操作

Numpy是python数据科学计算的核心库,提供了高性能的多维数组对象及处理数组的工具

  • 创建数组
  • 初始化占位符
  • 输入/输出
  1. 保存与载入磁盘上的文件
  2. 保存与载入文本文件
  • 数据类型
  • 数组信息
  • 调用帮助
  • 数组计算
  1. 算术运算
  2. 比较
  3. 聚合函数
  • 数组复制
  • 数组排序
  • 子集、切片、索引
  1. 子集
  2. 切片
  3. 条件索引
  4. 花式索引
  • 数组操作
  1. 转置数组
  2. 改变数组形状
  3. 添加或删除值
  4. 合并数组
  5. 分割数组
1、创建数组
import numpy as np
a=np.array([1,2,3])
b=np.array([(1,2,3),(4,5,6)])
c=np.array([[(1,2,3),(4,5,6)],[(7,8,9),(1,3,5)]],dtype=float)

[out]:
[1 2 3]

[[1 2 3]
 [4 5 6]]
 
[[[1. 2. 3.]
  [4. 5. 6.]]

 [[7. 8. 9.]
  [1. 3. 5.]]]

2、初始化占位符
np.zeros((3,4))   #初始化为0的数组
np.ones((2,3,4),dtype=np.int16)#创建值为1的数组
d=np.arange(10,25,5)#创建均匀间隔的数组(布进值)
np.linspace(0,2,9)#创建均匀间隔的数组(样本值)
e=np.full((2,2),7)  #创建常数数组
f=np.eye(2)   #创建2*2单位矩阵
np.random.random((2,2))   #创建随机值的数组
np.empty((3,2))   #创建空数组

[out]:
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
 
[[[1 1 1 1]
  [1 1 1 1]
  [1 1 1 1]]

 [[1 1 1 1]
  [1 1 1 1]
  [1 1 1 1]]]
  
[10 15 20]

[0.   0.25 0.5  0.75 1.   1.25 1.5  1.75 2.  ]

[[7 7]
 [7 7]]
 
[[1. 0.]
 [0. 1.]]
 
[[0.3080954  0.4031121 ]
 [0.31875205 0.12838739]]
 
[[1.39069238e-309 1.39069238e-309]
 [1.39069238e-309 1.39069238e-309]
 [1.39069238e-309 1.39069238e-309]]


3、输入输出
(1)保存与载入磁盘上的文件
np.save("my_array",a)
np.save2("array.npz",a,b)
np.loas("my_array.npy")

(2)保存与载入文本文件
np.loadtxt("myfile.txt")
np.genfromtxt("my_file.csv",delimiter=",")
np.savetxt("myarray.txt",a,delimiter="")

4、数据类型
np.int64  #带符号的64位整数
np.float32   #标准双精度浮点数
np.complex  #显示为128位浮点数的复数
np.object  #Python对象
np.string_  #固定长度字符串
np.Unicode_  #固定长度Unicode

5、数组信息
a.shape  #数组形状,几行几列
len(a)  #数组长度
b.ndim  #几维数组
e.size  #数组有多少元素
b.dtype  #数组类型
b.dtype.name  #数据类型的名字
b.astype(int)  #数据类型转换

6、调用帮助
np.info(np.ndarray.dtype)

7、数组计算
(1)算数运算
g=a-b   #减法
np.subtract(a,b)  #减法
b+a   #加法
np.add(a,b)  #加法
a/b  #除法
np.divide(a,b)  #除法
a*b  #乘法
np.multiply(a,b)  #乘法
np.exp(b)   幂
np.sqrt(a)  #平方根
np.sin(a)  #正弦
np.cos(b)  #余弦
np.log(a)   #自然对数
np.dot(7)  #点积

(2)比较
a==b
ab
np.array_equal(a,b)  #对比数组

(3)聚合函数
a.sum()   #数组汇总
a.min()   #数组最小值
a.max(axis=0))   #数组最小值(安行)
b.cumsum(axis=1)  #数组元素的累加值
b.mean()      #平均数
b.median   #中位数
b.corrcoef()     #相关系数
np.std(b)   #标准差 

  (4)数组复制
h=a.view()  #使用同一数据创建数组视图
np.copy(a)   #创建数组的副本
h=a.copy()   #创建数组的深度拷贝

 (5)数组排序
a.sort()   #数组排序
c.sort(axis=0)  #以轴为依据对数组排序

8、子集、切片、索引
(1)子集
a[]  #选择索引2对应的值
b[1,2]==b[1][2]  #选择行1列2对应的值

(2)切片
a[0:2]  #选择索引为0与1对应的值
b[0:2,1]  #选择第1列中第0行、第1行的值
b[:1]  #选择第0行的所有值(等同于b[0:1,:1])
c[1,...] #等同于[1,:,:] 
a[::-1]  #反转数组a

(3)条件索引
a[a<2]   #选择数组中所有小于2的值

(4)花式索引
#花式索引
print(b)
print(b[[1,0,1,0],[0,1,2,0]])   #选择(1,0),(0,1),(1,2),(0,0)所对应的值
print(b[[1,0,1,0]][:,[0,1,2,0]])  #选择矩阵的行列子集

[out]:
[[1 2 3]
 [4 5 6]]

[4 2 6 1]
[[4 5 6 4]

  [1 2 3 1]
 [4 5 6 4]
 [1 2 3 1]]

9、数组操作
(1)转置数组
i=np.transpose(b)  #转置数组
i.T   #转置数组

(2)改变数组形状
b.ravel()   #拉平数组
[out]:[1 2 3 4 5 6]
g.reshape(3,-2)  #改变数组形状,但不改变数据

(3)添加或删除值
h.resize((2,6))   #返回形状为(2,6)的新数组
np.append(h,g)   #追加数据
np.insert(a,1,5)  #插入数据
np.delete(a,[1])   #删除数据

(4)合并数组
np.concatenate((a,d),axis=0)  #拼接数组
np.vstack((a,b))   #纵向以行的维度堆叠数组
np.r_[e,f]  #纵向以行的维度堆叠数组
np.hstack((e,f))  #横向以列的维度堆叠数组
np.column_stack((a,d))   #以列的维度创建堆叠数组
np.c_[a,d]   #以列的维度创建堆叠数组

(5)分割数组
np.hsplit(a,3)  #纵向分割数组为3等份
np.vsplit(c,2)  #横向分割数组为2等份

 

你可能感兴趣的:(数据分析)