机器学习必备python知识(一):numpy库的常用用法

     博主为一个想入ML的大一学生。最近在学python的numpy,pandas,matplotlib和tkinter这些第三方模块。

     其中numpy,pandas是ML必备库,matplotlib则能让数据过程结果可视化,tkinter则可以编写RL中的环境,相当于简易的openAI。

import numpy as np

# 1 numpy属性
array = np.array([[1, 2, 3], [2, 3, 4]])
print(array)
print('number of dim:', array.ndim)         # 维度
print('shape:', array.shape)                # 形状
print('size:', array.size)                  # 元素数量

# 2 numpy的创建array
a = np.array([2, 3, 4], dtype=np.int)
print(a.dtype)
a = np.zeros((3, 4))                        # 全为0的矩阵
np.ones((3, 4), dtype=np.int16)             # 全为1的矩阵
np.empty((3, 4))                            # 空矩阵
np.eye(3)                                   # 单位矩阵
np.arange(12).reshape((3, 4))
np.arange(10, 20, 2)                        # (开始值,终值,步长)
np.linspace(1, 10, 5)                       # (开始值,终值,元素个数)

# 3 numpy的基础运算1
a = np.array([10, 20, 30, 40])
b = np.arange(4)
print(a*b)                                  # 逐个相乘
print(np.dot(a, b))                         # 矩阵乘法       等价于  print(a.dot(b))
print(b**2)
c = 10*np.sin(a)
print(b < 3)
d = np.random.random((2, 4))                # (0,1)之间的随机数字
np.sum(d)
np.min(d, axis=0)                           # axis=0 列向下索引
np.max(d, axis=1)                           # axis=1 行向下索引

# 4 numpy的基础运算2
a = np.arange(14, 2, -1).reshape((3, 4))
np.argmax(a)                                # 最大值索引
np.argmin(a)                                # 最小值索引
np.mean(a)                                  # 求平均值       等价于  a.mean()
np.median(a)                                # 求中位数
np.cumsum(a)                                # 累加
np.diff(a)                                  # 累差
np.nonzero(a)                               # 输出非0的数的行和列
np.sort(a)                                  # 排序
np.transpose(a)                             # 矩阵转置       等价于  a.T
np.clip(a, 5, 9)                            # 限制上下限

# 5 numpy的索引
A = np.arange(3, 15).reshape((3, 4))
print(A[1, 1:2])
for row in A:                               # 迭代行
    print(row)
for column in A.T:                          # 迭代列
    print(column)
print(A.flatten())                          # A.flatten()返回一个array
for item in A.flat:                         # A.flat是一个迭代器
    print(item)

# 6 numpy的array合并
A = np.array([1, 1, 1])
B = np.array([2, 2, 2])
np.vstack((A, B))                           # 垂直合并
np.hstack((A, B))                           # 水平合并
print(A[np.newaxis, :])                     # 行增加维度
print(A[:, np.newaxis])                     # 列增加维度
C = np.concatenate((A, B, A), axis=0)

# 7 numpy的array分割
A = np.arange(12).reshape((3, 4))
np.split(A, 3, axis=0)                      # 纵向分割  等价于  np.vsplit(A, 3)
np.split(A, 2, axis=1)                      # 横向分割  等价于  np.hsplit(A, 2)
np.array_split(A, 3, axis=1)                # 不等分割

# 8 numpy的copy和deep copy
a = np.arange(4)
b = a                                       # a,b指向一处 np.arange(4)计数器加一
print(b is a)                               # True
b = a.copy()                                # deep copy
博主学识浅薄,有错误的地方请大家多多见谅并指正!
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值