更新环境变量,np.array_split()及其他函数和Jupyter相关问题

211 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。
为了督促自己每天都有进步,在这里记录下每天遇到的问题和学到的新知识,作为个人回顾使用。

日记(第一周)

20200929

今天给Ubuntu装了anaconda,其中装好之后conda命令无法使用,于是我搜了网上的信息,通过 source ~/.bashrc命令更新了环境变量后仍然不可用,这说明需要手动更新。具体方法是:
1.先安装好vim文本编辑器
2.终端输入: vim ~/.bashrc
3.在打开的文本最后一行插入:export PATH=~/anaconda3/bin:$PATH(如果后来还是不好用或者再次打开终端后又不好用需要重新设置的话,那说明在这一步的文件名设置有些问题,我的电脑anaconda3就应该改成dcrmg。)
4.然后更新环境变量source ~/.bashrc
5.这时正常输入anaconda -V或者conda list就能正常显示版本等信息了。

20200930

关于Python3的pass命令:
pass命令是一个空命令,一般用来占位,不进行任何操作。

关于reshape命令:
reshape命令顾名思义,直接上其中一个例子: 在这里插入图片描述
reshape(-1,1):数据直接变成一列;
reshape(1,-1):数据直接变成一行。

np.split() ——均等划分
np.array_split() ——支持不均等划分
在这里插入图片描述
关于%matplotlib inline的作用
(摘自:www.jianshu.com/p/2dda5bb8c…

1.是在使用jupyter notebook 或者 jupyter qtconsole的时候,才会经常用到%matplotlib,也就是说那一份代码可能就是别人使用jupyter notebook 或者 jupyter qtconsole进行编辑的。关于jupyter notebook是什么,可以参考这个链接:[Jupyter Notebook介绍、安装及使用教程][1] 2.而%matplotlib具体作用是当你调用matplotlib.pyplot的绘图函数plot()进行绘图的时候,或者生成一个figure画布的时候,可以直接在你的python console里面生成图像。

对于我这个萌新而言,问题又来了,什么是python console呢?
Python Console是Python交互式模式,可以直接输入代码,然后执行,并立刻得到结果。 而Terminal是命令行模式,与系统的CMD(命令提示符)一样,可以运行各种系统命令。

关于try语句:

如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。
如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印默认的出错信息)。
如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。 

关于enumerate函数:

enumerate函数示例:
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]

关于from...import
你可以在你的模块里导入指定的模块属性。 也就是把指定名称导入到当前作用域。 使用from-import 语句可以实现我们的目的, 它的语法是:
在这里插入图片描述
关于axis=1/0
axis=1 按行计算
axis=0 按列计算

关于argsort函数
np.argsort函数返回的是数组值从小到大的索引值
np.bincount函数 投票器(详细请见:blog.csdn.net/xlinsist/ar…

关于SVM的梯度求法 blog.csdn.net/AlexXie1996…

实际上就是SVM的要求是错误项的分数-正确项分数要大于一个值(θ),这时才需要更新梯度,更新的梯度就是dW的第j(类别数)个位置加 x(i), 在 y(i) 的位置加 -x(i)。

关于np.argmax()
返回最大值的索引值。

20201001

祖国母亲生日快乐
关于np.random.seed()的作用
每次运行代码时设置相同的seed,则每次生成的随机数也相同,如果不设置seed,则每次生成的随机数都会不一样。 在这里插入图片描述(摘自:www.jianshu.com/p/b16b37f6b…

关于np.flatnonzero()的用法
该函数输入一个矩阵,返回扁平化后矩阵中非零元素的位置(index)

即输入一个矩阵,返回了其中非零元素的位置.
在这里插入图片描述
关于np.linalg.norm()函数
摘自:blog.csdn.net/hqh13136023…
代码实现

import numpy as np
x = np.array([
    [0, 3, 4],
    [1, 6, 4]])
#默认参数ord=None,axis=None,keepdims=False
print "默认参数(矩阵整体元素平方和开根号,不保留矩阵二维特性):",np.linalg.norm(x)
print "矩阵整体元素平方和开根号,保留矩阵二维特性:",np.linalg.norm(x,keepdims=True)
 
print "矩阵每个行向量求向量的2范数:",np.linalg.norm(x,axis=1,keepdims=True)
print "矩阵每个列向量求向量的2范数:",np.linalg.norm(x,axis=0,keepdims=True)
 
print "矩阵1范数:",np.linalg.norm(x,ord=1,keepdims=True)
print "矩阵2范数:",np.linalg.norm(x,ord=2,keepdims=True)
print "矩阵∞范数:",np.linalg.norm(x,ord=np.inf,keepdims=True)
 
print "矩阵每个行向量求向量的1范数:",np.linalg.norm(x,ord=1,axis=1,keepdims=True)

结果显示: 在这里插入图片描述

20201002

关于shape()函数
shape的作用就是获取矩阵的形状,这里我引用@jobschu的例子(blog.csdn.net/u014159143/… ):

import numpy as np
x = np.array([[1,2,5],[2,3,5],[3,4,5],[2,3,6]])
#输出数组的行和列数
print x.shape  #结果: (4, 3)
#只输出行数
print x.shape[0] #结果: 4
#只输出列数
print x.shape[1] #结果: 3

注意,获取的结果是一个元组。
关于np.hstack()函数
这个函数的作用就是把括号内的数组堆叠起来,具体可以参照这篇文章:blog.csdn.net/csdn1569884…

20201004

关于np.random.randn()
随机生成括号内维度大小的矩阵