Conda Pycharm Python 服务器等的使用记录

anaconda prompt环境与库

学习第一步,删库跑路(要先取消激活)

conda remove -n  (名称) --all

查看环境

//二选一
conda env list
conda info --envs

创建新环境

conda create -n (名称) python=(指定版本)

激活环境

conda activate (名称)

取消激活

conda deactivate

查看虚拟环境下安装的库

pip list

安装库

pip install (名称)

一次性下载要求的库,如果有requirement.txt的话直接

pip install -r (地址/requirement.txt)

一个要求文件里面一般长这样
在这里插入图片描述
没有就自己写一个

PyCharm添加Anaconda中的虚拟环境

刚刚一通操作,环境有了,要自己写个python看看,打开pycharm
新建工程,怎么把刚刚那个环境用上
在这里插入图片描述
找到anaconda安装目录下的conda.exe文件
在这里插入图片描述
能看到之前创建的新环境选项
在这里插入图片描述
就好了
在这里插入图片描述
多添加了一个看着 烦,怎么删除呢?
File-Setting-Project:…-Show All…
在这里插入图片描述
Remove Interpreter完成
在这里插入图片描述

python print打印显示不全设置

#  参考链接:https://www.cnblogs.com/zwtgyh/p/10641961.html
import pandas as pd

#显示Dateframe所有列(参数设置为None代表显示所有行,也可以自行设置数字)
pd.set_option('display.max_columns',None)

#显示Dateframe所有行,同上
pd.set_option('display.max_rows',None)

#设置Dataframe数据的显示长度,默认为50
pd.set_option('max_colwidth',200)

#禁止Dateframe自动换行(设置为Flase不自动换行,True反之)
pd.set_option('expand_frame_repr', False)

Default argument value is mutable

参考链接:https://blog.csdn.net/tcx1992/article/details/81312446

问题

对Python函数的参数赋初始值,称为Default Argument Values。给这些参数赋值为可变对象(mutable object),比如list,dictionary,很多类的实例时,要小心了,因为函数参数的初值只能被计算一次(在函数定义的时间里)。

官方文档:Important warning: The default value is evaluated only once. This makes a difference when the default is a mutable object such as a list, dictionary, or instances of most classes. For example, the following function accumulates the arguments passed to it on subsequent calls.

https://docs.python.org/3/tutorial/controlflow.html#more-on-defining-functions

示例

def f(a, L=[]):
    L.append(a)
    return L

print(f(1))
print(f(2))
print(f(3))

输出

[1]
[1, 2]
[1, 2, 3]

在第二次调用函数时,my_list=[]不会再被执行!
之前调用的输入一直累计,多次调用的时候会出错

解决方法

def f(a, L=None):
    if L is None:
        L = []
    L.append(a)
    return L

服务器新建环境又一次

服务器上发现之前建的环境python版本和本地不一致,新建环境的时候指定安装位置,想放到我的用户目录下有个.conda下的env里面

conda create --prefix=/home/(用户名)/.conda/env/(新建的环境名) python=(指定版本)

想要删掉之前那个空空如也且没用了的环境,发现会报错,不能删除当前环境,取消激活也没用,发现是用户目录下.bashrc里面有一句

# <<< conda initialize <<<
conda activate (之前的环境名称)

把这句改成我现在的,再取消激活,再删除旧环境,成功

一些常用的Linux指令

对不起老师,我真的已经忘光了

linux教程

查看每个用户占用空间的大小:

# 查看所有用户
sudo du -sh /home/*
# 只查看自己的
sudo du -sh /home/(用户名)
处理文件夹常用:

ls(英文全拼:list files): 列出目录及文件名
cd(英文全拼:change directory):切换目录
pwd(英文全拼:print work directory):显示目前的目录
mkdir(英文全拼:make directory):创建一个新的目录
rmdir(英文全拼:remove directory):删除一个空的目录
cp(英文全拼:copy file): 复制文件或目录
rm(英文全拼:remove): 删除文件或目录
mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

  1. 查看目录下文件
# 不包括隐藏文件
ls
# . 开头的隐藏文件也会列出
ls -a
  1. 切换目录
cd [相对路径或绝对路径]
  1. 显示当前目录
pwd [-P]
  1. 新建文件夹
mkdir -p (名称(当前目录下)或路径加名称)
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
  1. 删除文件
 rm [-fir] 文件或目录
 -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

禁止其他用户访问用户目录

设置目录权限就够了,隐私满满,但是拦不住root

sudo chmod 0700 /home/(用户名)

python numpy数组除0处理

需要在除以0时将结果替换为0

# np.divide()
arr = np.divide(a, b, out=np.zeros_like(b), where=b!=0)

'''chatgpt解释
out=np.zeros_like(b) 指定结果应存储在一个新数组中,该数组与b具有相同的形状,并且初始化为零。
where=b!=0 是一个条件,指定在哪里执行除法。它确保仅在b中的元素不等于零时执行除法。如果b中的元素为零,则相应的结果将被替换为零。
执行此代码后,数组b将包含除法的结果,并且任何除以零的结果都将被替换为零。
'''

numpy数组检查异常值

  1. 检查有无超出范围
check = np.isfinite(data)

# 只要有一个超出范围就是False
check = np.isfinite(data).any()
  1. nan,inf
check = np.isnan(data).any()  # nan
check = np.isinf(data).any()  # inf
  1. 定位异常值
# nan为例
nan_locations = np.where(np.isnan(arr))

scipy.stats

调用了skew函数,后续计算检查发现有缺失值NaN
检查出来是这个函数的输出,然后查看文档
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.skew.html
发现所有值相等时返回NaN

'''
Returns:
skewness ndarray
The skewness of values along an axis, returning NaN where all values are equal.
'''

使用数组索引提取数组指定行和列

错误写法:

choose1 = [0, 1]
choose2 = [2, 3]
new = matrix[choose1, choose2]

正确写法:

new = matrix[choose1][:, choose2]

处理提取出来的新数组的时候,遇到报错

# valueerror: ndarray is not c-contiguous

把数组转换为C连续

new = np.array(matrix[choose1][:, choose2], order='C')
# 或者
new=np.ascontiguousarray(new)

Python代码中主动退出进程,不抛出异常

python程序主动退出进程的方式

import sys
sys.exit(0)

Python取数组的奇数或偶数列

参考链接

a[start:end:step]  # [start:end) 通常写法省略了步长
a[::2]  # 从第一个起到最后一个(包括)步长为2

Python 出现 RuntimeWarning: invalid value encountered in multiply

解决方案

我的代码中pj变量存在0值,本来用np.where将pj为0的地方pj*log的这个值直接赋值为0

buf = np.where(pj !=0, pj * np.log(pj), 0)
hp = - np.sum(buf, axis=1)

但还是会警告,所以直接加一个小值防止报错

pj += 0.000001  # 防止log0警告
hp = - np.sum(pj * np.log(pj), axis=1)

datafram选取特定行列

需求:要取的列名保存在一个List里面,索引取这些列的指定行,最后转换为数组格式

data = df[select_colums].iloc[idx].to_numpy()
  • 48
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值