我正在经历学习如何在 Python/Anaconda 中管理包/不同(虚拟)环境的痛苦过程。有人告诉我 Anaconda 基本上是一个 python 安装,其中包含我需要的所有软件包(例如 numpy、scipy、sci-kit learn 等)。
但是,当我创建一个新环境时,这些包都不是现成的。在新创建的环境中使用 PyCharm 时,我无法导入它们。当我检查 Pycharm 项目解释器或 anaconda navigator 环境选项卡时,似乎这些软件包都没有安装在我的新环境中。这是为什么?提供所有这些包对我来说没有意义,但在创建新环境时不准备使用它们。我是否必须在新环境中手动安装所有这些软件包,还是我遗漏了什么?
最诚挚的问候,并提前致谢。
因为 .eslintcache 文件不能被 git 跟踪,所以当你被签入一个分支并且代码用 --cache 标志检查时,它会生成一个 .eslintcache 文件。稍后您切换到另一个分支,代码再次被检查。在这种情况下,缓存文件已经存在,所以 eslint 理论上会重用它,但我们不能假设之前的缓存文件是有效的。那么切换分支的时候不应该删除.eslintcache文件吗?
我认为我忽略了一些简单的事情,但似乎无法弄清楚到底是什么。请考虑以下代码:
a = [2, 3, 4, 5]
lc = [ x for x in a if x >= 4 ] # List comprehension
lg = ( x for x in a if x >= 4 ) # Generator expression
a.extend([6,7,8,9])
for i in lc:
print("{} ".format(i), end="")
for i in lg:
print("{} ".format(i), end="")
Run Code Online (Sandbox Code Playgroud)
我希望两个for循环都会产生相同的结果,所以4 5。但是,打印生成器exp的for循环会打印4 5 6 7 8 9。我认为这与列表理解的声明(在扩展之前声明)有关。但是,为什么生成器的结果与在扩展列表之前也声明过的不同呢?例如内部发生了什么?
我试图理解 3D 数组(或者一般的多维数组),但这有点让我大吃一惊。尤其是 3D numpy 数组的打印方式对我来说是违反直觉的。这个问题类似,但更多的是关于编程语言之间的差异,我仍然没有完全理解。让我尝试解释一下。
假设我想创建一个 3 行(长度)、5 列(宽度)和 2 深度的 3D 数组。所以是一个 3x5x2 矩阵。
我执行以下操作:
import numpy as np
a = np.zeros(30).reshape(3, 5, 2)
Run Code Online (Sandbox Code Playgroud)
对我来说,打印此内容的逻辑方法如下:
[[[0. 0. 0. 0. 0.] #We can still see three rows from top to bottom
[0. 0. 0. 0. 0.]] #We can still see five columns from left to right
[[0. 0. 0. 0. 0.] #Depth values are shown underneath each other
[0. 0. 0. 0. 0.]]
[[0. 0. 0. 0. …Run Code Online (Sandbox Code Playgroud) 当我使用 Anaconda 时,导入 numpy 会出现以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File"C:\Users\s140041\Anaconda3\envs\testenv\lib\site-packages\numpy\__init__.py", line 142, in <module>
from . import add_newdocs
File"C:\Users\s140041\Anaconda3\envs\testenv\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "C:\Users\s140041\Anaconda3\envs\testenv\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>
from .type_check import *
File"C:\Users\s140041\Anaconda3\envs\testenv\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File"C:\Users\s140041\Anaconda3\envs\testenv\lib\site-packages\numpy\core\__init__.py", line 26, in <module>
raise ImportError(msg)
ImportError:
Importing the multiarray numpy extension module failed. Most
likely you are trying to import a failed build …Run Code Online (Sandbox Code Playgroud) 我有以下字典:
'{0: 0, 1: 11, 2: 26, 3: 43, 4: 14, 5: 29, 6: 34, 7: 49, 8: 49, 9: 108, 10: 124, 11: 108, 12: 361, 13: 290, 14: 2118, 15: 5408, 16: 43473, 17: 109462, 18: 111490, 19: 244675, 20: 115878, 21: 6960}'
Run Code Online (Sandbox Code Playgroud)
对于这个字典,我想写一个函数,它返回具有最高值的三个键值对(所以在这种情况下键18,19,20).
我想出了以下内容:
cachedict = nr_of_objects_per_century() #Dictionary mentioned above
def top_3_centuries():
max_nr_works_list = sorted(cachedict.values())
top_3_values = []
for i in range(len(max_nr_works_list)-3, len(max_nr_works_list)):
top_3_values.append(max_nr_works_list[i])
print(top_3_values)
Run Code Online (Sandbox Code Playgroud)
这给了我一个我想要查找的最大值的列表.但是我怎么从这里开始呢?有没有办法在没有反向查找的情况下做到这一点(这对词典来说很慢,对吧?)我觉得我可以更有效地/ pythonic地完成这项任务.
我使用带有 TensorFlow 后端的 Keras 来训练神经网络模型。这是一个简单的模型(来自教程),一切正常。模型预测它应该的方式。似乎只有 tensorflow 输出信息,我不知道我是否可以安全地忽略它/它意味着什么。有人能解释一下下面的输出告诉我们什么吗?尤其是所有以 开头的台词OMP我都不清楚。弃用警告并没有真正让我担心。
Using TensorFlow backend.
OMP: Info #212: KMP_AFFINITY: decoding x2APIC ids.
OMP: Info #210: KMP_AFFINITY: Affinity capable, using global cpuid leaf 11 info
OMP: Info #154: KMP_AFFINITY: Initial OS proc set respected: 0-7
OMP: Info #156: KMP_AFFINITY: 8 available OS procs
OMP: Info #157: KMP_AFFINITY: Uniform topology
OMP: Info #179: KMP_AFFINITY: 1 packages x 4 cores/pkg x 2 threads/core (4 total cores)
OMP: Info #214: KMP_AFFINITY: OS proc to physical thread …Run Code Online (Sandbox Code Playgroud) 我正在使用天气数据集(要重现;可以在此处找到数据,解压缩它并运行下面的代码),我想对数据进行规范化。为此,我尝试了这个问题的第二个答案;
归结为 normalized_df=(df-df.mean(axis=0))/df.std(axis=0)
但是,执行此代码需要很长时间。因此,我开始调查,似乎df.mean()调用所花费的时间呈指数增长。
我使用以下代码来测试运行时:
import pandas as pd
import time
jena_climate_df = pd.read_csv("jena_climate_2009_2016.csv")
start = time.time()
print(jena_climate_df[:200000].mean(axis=0)) #Modify the number of rows here to observe the increase in time
stop = time.time()
print(f"{stop-start} Seconds for mean calc")
Run Code Online (Sandbox Code Playgroud)
我进行了一些测试,选择逐渐增加用于平均计算的行数。查看以下结果:
0.004987955093383789 Seconds for mean calc ~ 10 observations
0.009006738662719727 Seconds for mean calc ~ 1000 observations
0.0837397575378418 Seconds for mean calc ~ 10000 observations
1.789750337600708 Seconds for mean calc ~ 50000 observations …Run Code Online (Sandbox Code Playgroud) 我在此问题中找到了部分答案:是否 将Anaconda添加到Path
但是我仍然不完全了解。从正常安装的Python切换到Anaconda时,我遇到了很多安装问题,需要我完全重新安装Windows。所以我现在就想解决这个问题。
当我将Anaconda(或python)添加到PATH时,内部会发生什么?我计划针对不同的python版本使用单独的conda环境,如果在安装路径中添加Anaconda可能会出错吗?在安装中进行安装或稍后通过命令提示符进行处理之间有什么区别?这会影响我将Anaconda与PyCharm集成的能力吗?
我在一家公司工作,我们决定要更正确地使用 git。我负责将开发分支集成到主分支中,我对如何在不同场景下正确合并感到困惑。
我们现在的工作方式:开发人员只需在dev分支上重新调整他们的功能分支即可。完成后,他们将向dev分支提交合并请求。然后,我会检查代码(我们是一个小团队),并接受合并请求。之后他们只需删除功能分支即可。当dev分支经过正确测试后,我会在 GitLab 中创建一个到主分支的合并请求,将其分配给我自己并批准它。这会在main分支上创建一个提交:
将分支“dev”合并到“main”
然而,现在该dev分支落后了一次提交main。我该如何最好地解决这个问题?到目前为止,我只是简单地再次合并main,dev但这看起来很麻烦而且奇怪,因为它们现在是我dev分支中的另一个提交;
将分支“main”合并到“dev”
我也可以在 main 上对 dev 进行 rebase,但我了解到“你永远不能对公共分支进行 rebase”
这个问题告诉我正确的方法是首先将 main 合并到 dev 中,以确保 main 分支保持干净。这是实现合并的最佳方式吗dev --> main?
这是否受到 git fast-forwards 默认合并这一概念的影响?我读到,当从当前分支尖端到目标分支存在线性路径时,就会发生快进合并。这意味着,当合并时dev分支只是在x提交 to之前main,并且同时没有对 main 进行提交(这在我们的工作中很常见,因为我们技术上只提交 from main)dev,合并将自动进行快进合并?这种行为对于合并dev到来说是否有问题main,-no-ff合并时是否应该使用该标志?
如果我理解正确,则快进合并会将提交集成dev到分支中main,而--no-ff合并会导致合并始终创建一个新的提交对象,即使可以通过 …
当我通过 Conda 安装 tensorflow-gpu 时;它给了我以下输出:
conda install tensorflow-gpu
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /home/psychotechnopath/anaconda3/envs/DeepLearning3.6
added / updated specs:
- tensorflow-gpu
The following packages will be downloaded:
package | build
---------------------------|-----------------
_tflow_select-2.1.0 | gpu 2 KB
cudatoolkit-10.1.243 | h6bb024c_0 347.4 MB
cudnn-7.6.5 | cuda10.1_0 179.9 MB
cupti-10.1.168 | 0 1.4 MB
tensorflow-2.1.0 |gpu_py36h2e5cdaa_0 4 KB
tensorflow-base-2.1.0 |gpu_py36h6c5654b_0 155.9 MB
tensorflow-gpu-2.1.0 | h0d30ee6_0 3 KB
------------------------------------------------------------
Total: 684.7 MB
The following NEW packages …Run Code Online (Sandbox Code Playgroud)