首页 > 其他 > 详细

numpy和pandas(莫烦课程笔记)

时间:2020-04-21 23:19:12      阅读:142      评论:0      收藏:0      [点我收藏+]

一、numpy

1、array的创建

import numpy as np

# 定义矩阵/数组
array1 = np.array([[1,2,3],[4,5,6]])
print(array1)
print("num of dim: ", array1.ndim)
print("shape: ", array1.shape)
print("size: ", array1.size)

array2 = np.array([2,3,4], dtype=np.int64)
print(array1.dtype)
print(array2.dtype)

# 自动生成数组
array3 = np.zeros((3,4))
print(array3)
array4 = np.ones((2,3), dtype=np.int16)
print(array4)
array5 = np.empty((2,2))
print(array5)

array6 = np.arange(10, 20, 2) # 起止步长
print(array6)
array7 = np.arange(12).reshape((3,4)) # 0-11,3行4列
print(array7)

array8 = np.linspace(1, 10, 5) # 1-10,生成5段
print(array8)

技术分享图片

 

 

 

2、基础运算

所有的方法都可以指定axis(0按列、1按行)

a = np.array([10,20,30,40])
b = np.arange(4)
print(a+b)
print(a-b)
print(b**2) # 2次幂
print(10*np.sin(a)) # sin
print(np.tan(a)) # tan
print(a<25)
print(b==3)

技术分享图片

c = np.array([[1,2],[3,4]])
d = np.arange(4).reshape((2,2))
print(c)
print(d)
print(c*d) # 逐个相乘
print(np.dot(c,d)) # 矩阵乘法
print(c.dot(d)) # 矩阵乘法

技术分享图片

e = np.random.random((2,4)) # 创建随机生成(0-1)的array
print(e)
print(np.sum(e)) # 求和
print(np.sum(e, axis=0)) # 列上求和
print(np.sum(e, axis=1)) # 行上求和
print(np.min(e)) # 最小值
print(np.max(e)) # 最大值

技术分享图片

a = np.arange(2,14).reshape((3,4))
print(a)
print(np.argmin(a)) # 最小值的索引
print(np.argmax(a)) # 最大值的索引
print(np.mean(a)) # 平均值
print(np.median(a)) # 中位数
print(np.cumsum(a)) # 顺序累加
print(np.diff(a)) # 两两之差
print(np.nonzero(a)) # 对应每个非0位置的行列号和类型

技术分享图片

b = np.arange(14,2,-1).reshape((3,4))
print(b)
print(np.sort(b)) # 逐行排序
print(np.transpose(b)) # 转置
print(b.T) # 转置
print(np.clip(b,5,9)) # 大于9的变成9,小于5的变成5

 

 

 技术分享图片

 

 

 

 3、索引和迭代

a = np.arange(3,15).reshape((3,4))
print(a)
print(a[2]) # 打印第2行
print(a[2][3])
print(a[2,3])
print(a[2,:]) # 打印第2行
print(a[:,1]) # 打印第1列
print(a[1,1:3])

技术分享图片

for row in a:
    print(row)
for column in a.T:
    print(column)
print(a.flat) # 迭代器
print(a.flatten()) # 返回迭代的值
for item in a.flat:
    print(item)

技术分享图片

 

 

4、合并

import numpy as np

a = np.array([1,1,1])
b = np.array([2,2,2])
print(np.vstack((a,b))) # vertical stack 上下合并[[1,1,1],[2,2,2]]
print(np.hstack((a,b,b))) # horizontal stack 左右合并[1,1,1,2,2,2,2,2,2]

print(a[np.newaxis, :]) # 在列上加维度 [[1,1,1]]
print(a[:,np.newaxis]) # 在行上加维度 [[1],[1],[1]]

a = a[:,np.newaxis]
b = b[:,np.newaxis]
print(np.hstack((a,b))) # [[1,2],[1,2],[1,2]]
print(np.vstack((a,b))) # [[1],[1],[1],[2],[2],[2]]

# 多个array纵向或横向合并
print(np.concatenate((a,b,b), axis=0))
print(np.concatenate((a,b,b), axis=1))

技术分享图片技术分享图片

 

5、分割

import numpy as np

a = np.arange(12).reshape((3,4))
print(a)
# 只能进行等分
print(np.split(a, 2, axis=1))
print(np.split(a, 3, axis=0))
# 可以不等分
print(np.array_split(a, 3, axis=1))

print(np.vsplit(a, 3))
print(np.hsplit(a, 2))

技术分享图片

 

6、copy

b = np.arange(4)
c = b
print(c is b) # 同一块内存
b[0] = 8
print(c)
d = c
print(d) # 跟着改变

c = b.copy() # 深拷贝
print(b is c)
b[3] = 9
print(c) # 没有改变

技术分享图片

 

 

二、pandas

1、

 

 

2、

 

numpy和pandas(莫烦课程笔记)

原文:https://www.cnblogs.com/ysysyzz/p/12741633.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!