机器学习基本库之numpy

今天登录CSDN后发现我好像很长一段时间没更新了,正好放假在家闲着没啥事,分享一下最近看网课时做的笔记吧。以后有时间的话就多写些文章。

import numpy# numpy是用于矩阵处理的一个python库
# delimiter分隔符,dtype读取数据时默认的读取方式
# 所有的numpy都是ndarray结构
# help(numpy.action())可以打印帮助说明
print(help(numpy.genfromtxt))

会打印出关于genfromtxt()方法的所有参数取值 并且在最后会给出一个运行实例,感兴趣的小伙伴可以尝试一下运行看看

import numpy

vector = numpy.array([1, 2, 32, '20'])
# array方法是核心,接收一个列表(只能是一个)用于生成行向量,列表中元素必须是相同的结构
martrix = numpy.array([[2, 4, 6],
                       [1, 3, 5],
                       [7, 8, 9]])
print(vector)
print(martrix)
print(martrix.shape)
# 可以很清晰地看到所创造矩阵的行与列
# vector.dtype可以看到数据的类型
print(martrix[1, 2])
# 矩阵中的元素通过索引进行读取,索引是从0开始的,用:可以表示某一列或某一行
print(martrix[:, 0])
print(martrix[1, :])

运行结果:['1' '2' '32' '20']
                [[2 4 6]
                 [1 3 5]
                 [7 8 9]]
                (3, 3)
                5
                [2 1 7]
                [1 3 5]

import numpy

vector = numpy.array([1, 2, 32, 20])
martrix = numpy.array([[2, 4, 6],
                       [1, 3, 5],
                       [7, 8, 9]])
vector == 2
martrix == 3
# 直接用等号进行判断,可以返回一系列bool值
eqaul_to_two_and_three = (martrix == 2) | (martrix == 3)
print(eqaul_to_two_and_three)
# 等号判断之后的bool矩阵可以进行与或非逻辑运算
martrix=martrix.astype(float)
print(martrix.dtype)
# astype 方法可以将矩阵的元素类型进行转换
print(martrix.min())
# min,max()方法可以求出最大和最小值
print(martrix.sum(axis=1))
# axis等于1代表对每一行求和
print(martrix.sum(axis=0))
# axis等于0代表对每一列求和

运行结果:[[ True False False]
                 [False  True False]
                 [False False False]]
                float64
                1.0
                [12.  9. 24.]
                [10. 15. 20.]

import numpy as np
from numpy import pi
print(np.arange(15))
print(np.arange(15).reshap(3,5))
# arange表示构建从0到14的自然数,reshape表示构造3×5的矩阵
# shape打印行和列,ndim打印矩阵维度,size打印矩阵元素个数
np.zeros((3,4),dtype=int)
# 初始化一个零矩阵,传进的是元组格式,并且可以指定dtype
np.random.random((3,4))
# 表示调用random库中的random函数
print(np.linspace(0,2*pi,100))
# linspace()方法表示生成两个端点间间隔相同的n个数

运行结果:

[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]
[0.         0.06346652 0.12693304 0.19039955 0.25386607 0.31733259
 0.38079911 0.44426563 0.50773215 0.57119866 0.63466518 0.6981317
 0.76159822 0.82506474 0.88853126 0.95199777 1.01546429 1.07893081
 1.14239733 1.20586385 1.26933037 1.33279688 1.3962634  1.45972992
 1.52319644 1.58666296 1.65012947 1.71359599 1.77706251 1.84052903
 1.90399555 1.96746207 2.03092858 2.0943951  2.15786162 2.22132814
 2.28479466 2.34826118 2.41172769 2.47519421 2.53866073 2.60212725
 2.66559377 2.72906028 2.7925268  2.85599332 2.91945984 2.98292636
 3.04639288 3.10985939 3.17332591 3.23679243 3.30025895 3.36372547
 3.42719199 3.4906585  3.55412502 3.61759154 3.68105806 3.74452458
 3.8079911  3.87145761 3.93492413 3.99839065 4.06185717 4.12532369
 4.1887902  4.25225672 4.31572324 4.37918976 4.44265628 4.5061228
 4.56958931 4.63305583 4.69652235 4.75998887 4.82345539 4.88692191
 4.95038842 5.01385494 5.07732146 5.14078798 5.2042545  5.26772102
 5.33118753 5.39465405 5.45812057 5.52158709 5.58505361 5.64852012
 5.71198664 5.77545316 5.83891968 5.9023862  5.96585272 6.02931923
 6.09278575 6.15625227 6.21971879 6.28318531]

a=numpy.array([[1,2],
              [2,0]])
b=numpy.array([[2,3]
              ,[0,2]])
print(a*b)
# *表示矩阵对应位置相乘
print(a.dot(b))
print(np.dot(a,b))
# .dot表示实际的矩阵相乘
c=a.ravel()
c.shape=(4,1)
print(c)
# ravel表示把矩阵铺平,然后可以指定矩阵结构
print(np.hstack((a,b)))
# hstack表示矩阵的按行拼接,vstack表示矩阵的按列拼接
# hsplit按照行进行切分,vsplit按照列进行切分

运行结果:

[[2 6]
 [0 0]]
[[2 7]
 [4 6]]
[[2 7]
 [4 6]]
[[1]
 [2]
 [2]
 [0]]
[[1 2 2 3]
 [2 0 0 2]]

# 复制操作
c=a
c=a.view()
c=a.copy()#建议用这个
import numpy
data=numpy.sin(numpy.arange(20).reshape(5,4))
print(data)
ind=data.argmax(axis=0)#找到每一列最大的索引值
print(ind)
data_max=data[ind,range(data.shape[1])]#根据索引找到最大值
print(data_max)

运行结果:

[[ 0.          0.84147098  0.90929743  0.14112001]
 [-0.7568025  -0.95892427 -0.2794155   0.6569866 ]
 [ 0.98935825  0.41211849 -0.54402111 -0.99999021]
 [-0.53657292  0.42016704  0.99060736  0.65028784]
 [-0.28790332 -0.96139749 -0.75098725  0.14987721]]
[2 0 3 1]
[0.98935825 0.84147098 0.99060736 0.6569866 ]

a=np.array(range(0,40,10))
print(a)
b=np.tile(a,(2,3))#将一个矩阵进行拓展
print(b)
c=np.argsort(a)#获取从小到大的索引,传入索引实现对矩阵排序
print(a[c])

运行结果:
[ 0 10 20 30]
[[ 0 10 20 30  0 10 20 30  0 10 20 30]
 [ 0 10 20 30  0 10 20 30  0 10 20 30]]
[ 0 10 20 30]

所有代码均在pycharm2022版本上运行通过,如有代码异常请评论区留言

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值