numpy莫烦的python视频总结


jupyter:
jupytext:
formats: ipynb,md
text_representation:
extension: .md
format_name: markdown
format_version: ‘1.2’
jupytext_version: 1.3.2
kernelspec:
display_name: Python 3
language: python
name: python3

import numpy as np # 导入 numpy 这个包,并简写为 np
array = np.array([[1,2,3],[2,3,4],[3,4,5],[4,5,6]]) # 用 numpy 定义一个两行三列的矩阵或者说二维数组 
print(array) # 输出这个矩阵
print('number of dim:',array.ndim) # 输出这个矩阵的维数,显然是个 2 维数组
print('shape:',array.shape) # 输出这个矩阵的行数和列数
print('size:',array.size) # 输出这个矩阵中一共有多少元素
assert(array.shape==(4,3))
type(array)
import numpy as np # 导入 numpy 这个软件包并简写为 np
a = np.array([1,2,3]) # 用 numpy 定义一个列表
print(a) # 输出这个列表,我们发现输出的列表没有逗号
# 定义 array 的 dtype ,比如说整数或者小数
a = np.array([1,2,3],dtype=np.int)
print(a.dtype) # 输出 a 的 type 默认是 32
a = np.array([1,2,3],dtype=np.int64) # 设置 dtype 为 int64
print(a.dtype) # 输出 a 的 type
a = np.array([1,2,3],dtype=np.int32) # 设置 dtype 为 int32
print(a.dtype) # 输出 a 的 type
# 一般来说位数越小占用内存空间越小精度也较低,位数越大占用内存空间越大精度也较高
a = np.array([1,2,3],dtype=np.float) 
print(a.dtype) # 输出 a 的 type 默认是 64
a = np.array([1,2,3],dtype=np.float32) # 设置 dtype 为 float32
print(a.dtype) # 输出 a 的 type
a = np.array([1,2,3],dtype=np.float64) # 设置 dtype 为 float64
print(a.dtype) # 输出 a 的 type
a = np.array([[1,2,3],[2,3,4],[3,4,5],[4,5,6]]) # 定义一个矩阵
print(a)
a = np.zeros((3,5)) # 生成一个 3 行 5 列的零矩阵
print(a)
a = np.ones((3,5),dtype=np.int16) # 生成一个 3 行 5 列的元素全是 1 的矩阵
print(a)
a = np.empty((3,5)) # 生成一个 3 行 5 列的空的矩阵
print(a)
a = np.arange(1,10,2) # 生成一个列表首个元素为 1 步长为 2 一直到 9 结束
print(a)
a = np.arange(10).reshape(2,5) # 生成一个 2 行 5 列,元素从 0 到 9
print(a)
a = np.linspace(0,5,6).reshape(2,3) # 生成一个 2 行 3 列的矩阵,该矩阵的元素是从 0 到 5 的等差数列列表,该矩阵的元素个数为 6
print(a)
import numpy as np # 导入 numpy 软件包
a = np.array([11,22,33,44]) # 定义一个列表 a
b = np.arange(4) # 定义一个一行元素为 0,1,2,3 的列表 b
c = a-b # 做减法运算并将结果赋给 c,注意两个列表的行数列数应该相等
d = a+b # 做加法运算并将结果赋给 d,注意两个列表的行数列数应该相等
e = b**2 # 做列表 b 的 2 次方运算(每个元素平方)并将结果赋给 e
print(a,b) # 输出 a,b 两个列表
print(c) # 输出列表 c
print(d) # 输出列表 d
print(e) # 输出列表 e
import numpy as np
b = np.arange(4) # 定义一个一行元素为 0,1,2,3 的列表 b
f = np.sin(b) # 对 b 中每一个元素求 sin
g= np.cos(b) # 对 b 中每一个元素求 cos
h = np.tan(b) # 对 b 中每一个元素求 tan
print(b)
print(f)
print(g)
print(h)
import numpy as np
b = np.arange(4)
print(b)
print(b<3) # 判断 b 的每个元素是否小于 3 
import numpy as np
b = np.arange(4)
print(b)
print(b==3) # 判断 b 中每个元素是否等于 3
import numpy as np
b = np.arange(4).reshape((2,2)) # 将 b 变为一个两行两列的矩阵
k= np.array([[1,1],[0,1]])  # 定义一个矩阵 k
print(b)
print()
print(k)
print()
l = b*k # 逐个相乘
m =np.dot(b,k) # 矩阵相乘
m1= b.dot(k) # 矩阵相乘的另一种方法
print()
print(l)
print()
print(m)
print(m1)
import numpy as np
n = np.random.random((3,4)) # 生成三行四列的矩阵,其中每一个元素都是从 0~1 随机生成的
print(n)
import numpy as np
b = np.arange(4)
print(b)
print(np.sum(b)) # 输出该列表所有元素求和的值
print(np.min(b)) # 输出该列表所有元素中的最小值
print(np.max(b)) # 输出该列表所有元素中的最大值
import numpy as np
o = np.arange(12).reshape((2,6)) # 定义一个两行六列的矩阵,元素为 0,1,...11
print(o) 
print(np.sum(o,axis=0)) # 逐列求和,然后输出一个列表
print(np.sum(o,axis=1)) # 逐行求和,然后输出一个列表
print(np.min(o,axis=0)) # 逐列找最小值,然后输出一个列表
print(np.min(o,axis=1)) # 逐行找最小值,然后输出一个列表
print(np.max(o,axis=0)) # 逐列找最大值,然后输出一个列表
print(np.max(o,axis=1)) # 逐行找最大值,然后输出一个列表
import numpy as np
a = np.arange(3,15).reshape((3,4)) # 定义一个 3 行 4 列的矩阵,元素从 3 到 14,步长为 1
print(a) 
print(np.argmin(a)) # 输出矩阵中最小值的索引
print(np.argmax(a)) # 输出矩阵中最大值的索引
print(np.mean(a)) # 输出矩阵所有元素的平均值
print(a.mean()) # 输出矩阵所有元素的平均值
print(np.median(a)) # 输出矩阵所有元素的中位数
print(a)
print(np.cumsum(a)) 
'''逐个累加形成一个列表,列表元素个数与矩阵个数相同,列表第零个元素就是矩阵第零个元素,
第一个元素等于矩阵前两个元素相加,第二个元素等于矩阵前三个元素相加......'''
print(np.diff(a))
'''做差分生成一个矩阵,与原来矩阵相比少了 1 列,新矩阵的第零个元素是原矩阵第一个元素减第零个元素,
新矩阵第一个元素是原矩阵第二个元素减第一个元素......'''
print(a)
print(np.nonzero(a)) # 输出两个列表,第一个列表表示各对应元素所处的行数,第二个列表表示各对应元素所处的列数
# 也是非零的元素的行列数
a = np.arange(15,3,-1).reshape((3,4))
print(a)
print(np.sort(a)) # 逐行排序
print(a)
print(a.T) # 矩阵转置
print(np.transpose(a)) # 矩阵转置
print(a)
print(np.clip(a,6,12)) # 将 6 到 12 之间的数保持不变包括 6 和 12,小于 6 的换成 6 ,大于 12 的换成 12
import numpy as np
a = np.arange(4,16) # 生成一个元素为 4 到 15 步长为 1 的一维数组
print(a)
print(a[3]) # 输出这个列表索引是 3 的元素
print(a[1:5]) # 对这个一维数组进行切片,取索引第 1 到第 4 的元素构成列表
a = np.arange(4,16).reshape(3,4) # 生成一个 3 行 4 列的矩阵,其中元素为 4 到 15 步长为 1 
print(a) 
print()
print(a[2]) # 输出第二行的元素
print(a[2,:]) # 输出第二行的元素
print()
print(a[:,1]) # 输出第一列的元素
print()
print(a[1][0]) # 输出第一行第零列的元素
print(a[1,0]) # 输出第一行第零列的元素
print()
print(a[2][0]) # 输出第二行第零列的元素
print(a[2,0]) # 输出第二行第零列的元素
print()
print(a[1,1:4]) # 对矩阵进行切片,输出第一行第一到第三个元素
a = np.arange(4,16).reshape(3,4) # 生成一个 3 行 4 列的矩阵,其中元素为 4 到 15 步长为 1 
print(a) 
print()
print(a[2]) # 输出第二行的元素
print(a[2,:]) # 输出第二行的元素
print()
print(a[:,1]) # 输出第一列的元素
print()
print(a[1][0]) # 输出第一行第零列的元素
print(a[1,0]) # 输出第一行第零列的元素
print()
print(a[2][0]) # 输出第二行第零列的元素
print(a[2,0]) # 输出第二行第零列的元素
print()
print(a[1,1:4]) # 对矩阵进行切片,输出第一行第一到第三个元素
a = np.arange(3,15).reshape((3,4))# 生成一个 3 行 4 列的矩阵,其中元素为 4 到 15 步长为 1 
print(a) # 打印矩阵 a 

# 利用循环的方式打印矩阵的每一行
for row in a:
    print(row)
a = np.arange(3,15).reshape((3,4))# 生成一个 3 行 4 列的矩阵,其中元素为 4 到 15 步长为 1 
print(a) # 打印矩阵 a 
print(a.T) # 打印转置后的矩阵 a

# 利用循环的方式打印矩阵的每一列(通过转置的方式)
for col in a.T:
    print(col)
a = np.arange(3,15).reshape((3,4))# 生成一个 3 行 4 列的矩阵,其中元素为 4 到 15 步长为 1 
print(a) # 打印矩阵 a 
print(a.flatten())

# 循环输出矩阵 a 的每一个元素
for item in a.flat:
    print(item)
import numpy as np
a = np.array([1,1,1])
b = np.array([2,2,2])
print(a.shape,b.shape) # 输出这两个数组的 shape
print()
print(np.vstack((a,b))) # 上下合并两个数组 vertical stack
print(np.vstack((a,b)).shape) # 输出上面合并数组的 shape
print()
print(np.hstack((a,b))) # 左右合并两个数组 horizontal
print(np.hstack((a,b)).shape) # 输出上面合并数组的 shape
print(a)
print()
print(a.T) # 转置数组 a 发现并没有什么用,因为它不是一个矩阵 
print()
print(a[np.newaxis,:]) # 在数组行加上维度,使之成为一个 1 行 3 列的矩阵
print(a[np.newaxis,:].shape) # 输出上面数组的 shape
print()
print(a[:,np.newaxis]) # 在数组列上添加维度,使之成为一个 3 行 1 列的矩阵 
print(a[:,np.newaxis].shape) # 输出上面数组的 shape
a = np.array([1,1,1])[:,np.newaxis] # 把数组 a 转化为一个 3 行 1 列的矩阵
b = np.array([2,2,2])[:,np.newaxis] # 把数组 b 转化为一个 3 行 1 列的矩阵
print(a)
print(b)
print()
print(np.vstack((a,b))) # 上下合并两个数组
print(np.hstack((a,b))) # 左右合并两个数组
print()
c = np.concatenate((a,b,b,a),axis=0) # 采用 concatenate() 函数对多个数组的上下合并,axis=0 表示是上下合并
print(c)
print()
d = np.concatenate((a,b,b,a),axis=1) # 采用 concatenate() 函数多个数组的左右合并,axis=1 表示是左右合并
print(d)
import numpy as np
a = np.arange(12).reshape(3,4)
print(a)
print()
print(np.split(a,2,axis=1)) # 将这个矩阵分割为 2 个 3 行 2 列的 array(等量分割)
print()
print(np.split(a,3,axis=0)) # 将这个矩阵分割为 3 个 1 行 4 列的array(等量分割)
print(a)
print()
print(np.vsplit(a,3)) # 对这个矩阵进行纵向分割,分割成 3 个 1 行 4 列的 array
print()
print(np.hsplit(a,2)) # 对这个矩阵进行横向分割,分割成 2 个 3 行 2 列的 array
print(a)
print()
print(np.array_split(a,3,axis=1)) # 对这个矩阵进行不等量分割,分成 3 个 array,分别是 3 行 2 列,3 行 1 列,3 行 1 列
import numpy as np 
a = np.arange(5) # 生成一个元素为 0,1,2,...4,的一行 array
print(a) 
print()
b = a # 把 a 赋值(copy)给 b 
c = a # 把 a 赋值(copy)给 c 
d = b # 把 b 赋值(copy)给 d 
print(b)
print()
print(c)
print()
print(d)
a[0] = 11 # 把 a 的第零个元素改为 11
print(b is a) # 判断 a 与 b 是否为同一个东西并输出结果
print(c is a) # 判断 a 与 c 是否为同一个东西并输出结果
print(d is a) # 判断 a 与 d 是否为同一个东西并输出结果
print()
print(a)
print(b)
print(c)
print(d)
d[1:4]=[22,33,44] # 改变 d 的第 1 到第 3 个元素为 [22,33,44]
print()
print(d)
print(a)
print(b)
print(c)
e = a.copy() # deep copy
print(a)
print(e)
a[4] = 55 # 改变 a 的第 4 个元素为 55 
print()
print(a)
print(e)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值