GVKun编程网logo

conda-unpack 脚本位于何处?(conda.cli)

6

在本文中,您将会了解到关于conda-unpack脚本位于何处?的新资讯,同时我们还将为您解释conda.cli的相关在本文中,我们将带你探索conda-unpack脚本位于何处?的奥秘,分析cond

在本文中,您将会了解到关于conda-unpack 脚本位于何处?的新资讯,同时我们还将为您解释conda.cli的相关在本文中,我们将带你探索conda-unpack 脚本位于何处?的奥秘,分析conda.cli的特点,并给出一些关于.NET运行时(CLR),JIT编译器位于何处?、/opt/conda/lib/python3.6/site-packages/pandas/core/ops.py:816: pandas 处理 NaN、bash – 如何定义shell脚本变量以使脚本位于脚本之外、bootstrap标准错误在引导类中存在于何处?的实用技巧。

本文目录一览:

conda-unpack 脚本位于何处?(conda.cli)

conda-unpack 脚本位于何处?(conda.cli)

如何解决conda-unpack 脚本位于何处??

我正在尝试按照 https://conda.github.io/conda-pack/index.html?highlight=conda%20unpack 中的步骤打包和解包 conda 环境。

但是,我没有看到 conda-unpack 脚本。它应该位于哪里?

解决方法

conda-unpack 脚本位于您使用 .tar.gz 创建的 conda-pack 中。它位于解压环境的 Scripts 文件夹中。因此,它应该在解压并激活环境后可用。

.NET运行时(CLR),JIT编译器位于何处?

.NET运行时(CLR),JIT编译器位于何处?

这个问题可能看起来有点愚蠢或奇怪,但我已经听说了很多关于.NET CLR,JIT编译器以及它是如何工作的等等等等……但现在我想知道它究竟在哪里或托pipe。

是吗 –

当我们实际安装.NET框架时,作为Windows操作系统的一部分托pipe?

要么

它是我们可以在任务pipe理器中看到的一些.exe的一部分

我正在寻找关于这个的详细的答案。 有人可能将这个问题作为“如何Windows操作系统在.NET运行时触发/执行.NET可执行文件?

可以通过使用System.IO库来读取文件来执行病毒吗?

选项卡控制 – 更改为不同的forms(C#)

build议在.NET中创build命令行文本编辑器

在启动时dynamic决定Winforms或Wpf?

c#winforms:确定程序的第一次运行

是否有可用于可移植类库的System.Environment.Machinename的等价物?

Windows安全性自定义loginvalidation

如何以编程方式检查WCF Http / Non-Http Activation组件?

从IntPtr句柄获取Control / Form对象

无法将文本从控制台输出到文本文件

它在哪里位于或托管

它只是一个普通的DLL,你可以在C: Windows Microsoft.NET Framework v4.0.30319 clrjit.dll中找到它的x86版本。 x64版本位于Framework64目录中。 .NET v2版本具有不同的名称mscorjit.dll,可以在v2.0.50727目录中找到它。

它根本不被“托管”,操作系统完全不知道它存在。 CLR知道如何定位和加载它。 必然如此,CLR决定何时启动一个程序。 它只是将DLL名称硬编码并使用LoadLibrary(“clrjit.dll”)来加载它,GetProcAddress(“getJit”)来获取工厂函数。 在CoreCLR源代码中可以看到一些东西,尽管在CLR版本中抖动不再是独立的DLL。

你可以看到与资源管理器的CLR,再次只是一个普通的DLL。 它是v4版本中的clr.dll,v2版本中的mscorwks.dll和mscorsvc.dll。 两个不同的垃圾收集器,“wks”是工作站版本,“svc”是服务器版本。 比较<gcserver>配置文件条目。

这将问题转移到“CLR如何加载?” 这是c: windows syswow64 mscoree.dll的工作,当您在EXE项目中定位到x64时,您将使用c:​​ windows system32 mscoree.dll。 每个.NET程序集都有5或9个字节的非托管代码,跳转到该DLL。 可以_CorExeMain或_CorDllMain,这取决于程序集是作为一个exe或一个库构建的。 mscoree.dll查看程序集中的元数据,并确定CLR需要加载哪个版本才能正确执行。

更多的诡计正在进行,我刚刚发布了你要求的10,000英尺的视图。 如果您感兴趣,那么您可能想了解更多关于定制CLR托管服务的信息,以便看到幕后的男士。

Windows操作系统如何触发/执行.NET可执行文件在.NET运行时内运行?

每个.NET托管程序集或可执行文件都有特殊的CLR标头,您可以通过查看ILDASM中的程序集来查看。 这个头文件指向需要加载的运行时版本。 此外,还有带有Import Address Table的图像部分,指向需要加载的内容:

----- Image sections: Import Address Table DLL : mscoree.dll 0x00002000 Import Address Table 0x0000a37e Import Name Table 0 Time Date Stamp 0 Index of First Forwarder Reference 0x0000 _CorDllMain ----- CLR Header: Header size: 0x00000048 Major runtime version: 0x0002 Minor runtime version: 0x0005 0x00003184 [0x00007078] address [size] of Metadata Directory: Flags: 0x00000001 Entry point token: 0x00000000 0x00000000 [0x00000000] address [size] of Resources Directory: 0x00000000 [0x00000000] address [size] of Strong Name Signature: 0x00000000 [0x00000000] address [size] of CodeManager Table: 0x00000000 [0x00000000] address [size] of VTableFixups Directory: 0x00000000 [0x00000000] address [size] of Export Address Table: 0x00000000 [0x00000000] address [size] of Precompile Header:

当被操作系统运行时, mscoree.dll (或Shim)被加载,它是.NET 4.0及以上版本的clr.dll和clrjit.dll的引导程序,或.NET 2.0的mscordacwks.dll和mscorjit.dll或以下,分别是运行时和JIT。 您可以看到,本机dll入口点被指示为类库的_CorDllMain方法,而_CorExeMain表示可执行文件,它负责加载和入口点的入口。 他们反过来将在托管环境中调用您的应用程序入口点。

这是基于我的理解,并会引导你对你的回答,但可能不会完全刷新。

组成DotNet运行时(CLR等)的EXE / DLL文件位于以下位置:

C:WindowsMicrosoft.NETFramework // for the 32 bit runtime C:WindowsMicrosoft.NETFramework64 // for the 64 bit runtime

在那里,你有不同的版本,如2.0.50727,3.0,3.5和4.0.30319(我今天系统上的版本)。

这是MSBuild以及在IIS中注册的文件所在的位置。

我不知道这是否最终在运行时由Windows托管,或者是否有实际的EXE可以附加到调试器,并在任务管理器中查看。

希望这能为你提供更多的见解。

/opt/conda/lib/python3.6/site-packages/pandas/core/ops.py:816: pandas 处理 NaN

/opt/conda/lib/python3.6/site-packages/pandas/core/ops.py:816: pandas 处理 NaN

这里记录一下犯过的及其傻帽的错误!!!!哈哈,无语,同时讨论一下NaN这个数据类型的处理

/opt/conda/lib/python3.6/site-packages/pandas/core/ops.py:816: FutureWarning: elementwise comparison Failed; returning scalar instead,but in the future will perform elementwise comparison result = getattr(x,name)(y)

....................

TypeError: invalid type comparison

这里有一个优惠券的scv表:

import numpy as np
import pandas as pd
dfoff = pd.read_csv("datalab/4901/ccf_offline_stage1_train.csv")
dfofftest = pd.read_csv("datalab/4901/ccf_offline_stage1_test_revised.csv")
dfoff.head()

笔者这里的目的是想统计出 Coupon_id是非NaN(非空)且Date是NaN(空)的用户数(行数)

----------------------------------------------------------------------------------------------------------------------------------------------------------------

一般来说比如我们想筛选出 discount_rate是20:1且distance不是1.0的行数可以这么做:

dfoff.info()
print('数目是:',dfoff[(dfoff['discount_rate']=='20:1')&(dfoff['Date']!=1.0)].shape[0])

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

于是笔者这样做了筛选:

dfoff.info()
print('有优惠券,但是没有使用优惠券购买的客户有',dfoff[(dfoff['Coupon_id']!='NaN')&(dfoff['Date']=='NaN')].shape[0])

结果报错:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1754884 entries,0 to 1754883
Data columns (total 7 columns):
User_id          int64
Merchant_id      int64
Coupon_id        float64
discount_rate    object
distance         float64
Date_received    float64
Date             float64
dtypes: float64(4),int64(2),object(1)
memory usage: 93.7+ MB

/opt/conda/lib/python3.6/site-packages/pandas/core/ops.py:816: FutureWarning: elementwise comparison Failed; returning scalar instead,but in the future will perform elementwise comparison
  result = getattr(x,name)(y)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-24-c27c94978405> in <module>()
      1 dfoff.info()
----> 2 print('有优惠券,但是没有使用优惠券购买的客户有',dfoff[(dfoff['Coupon_id']!='NaN')&(dfoff['Date']=='NaN')].shape[0])

/opt/conda/lib/python3.6/site-packages/pandas/core/ops.py in wrapper(self,other,axis)
    877 
    878             with np.errstate(all='ignore'):
--> 879                 res = na_op(values,other)
    880             if is_scalar(res):
    881                 raise TypeError('Could not compare {typ} type with Series'

/opt/conda/lib/python3.6/site-packages/pandas/core/ops.py in na_op(x,y)
    816                     result = getattr(x,name)(y)
    817                 if result is NotImplemented:
--> 818                     raise TypeError("invalid type comparison")
    819             except AttributeError:
    820                 result = op(x,y)

TypeError: invalid type comparison

 

其实吧原因很简单,注意看上面笔者故意标红的地方,Coupon_id Date的数据类型都是float64,而代码中却用了dfoff['Coupon_id']!='NaN',这不是字符串嘛!!!!!!

print(type('NaN'))
<class 'str'>

float和str比较当然报错了是吧,哎!能这样直接去比较我也算是极品啦哈哈哈

于是可以使用其内置的方法解决:

dfoff.info()
print('有优惠券,但是没有使用优惠券购买的客户有',dfoff[(dfoff['Coupon_id'].notnull())&(dfoff['Date'].isnull())].shape[0])

即使用了如下两个方法

.notnull()
.isnull()

其作用就是判断是否是空值,如果csv中的NaN的地方换成null同样适用

同时这里说一下怎么将NaN替换掉:例如替换成0.0

dfoff['Coupon_id']=dfoff['Coupon_id'].replace(np.nan,0.0)

-----------------------------------------------------------------------------------------------------------------------------------------------------------

下面来说一下NaN这个数据类型,它的全称应该是not a number,说到这里不得不提到另外一个数据类型inf

相同点:都是代表一个无法表示的数

不同点:inf代表无穷大,是一个超过浮点表示范围的浮点数,而NaN可以看成是缺少值或者是无理数

假设现在有一段程序:

def ConvertRate(row):
    if row.isnull():
        return 0
    elif ':' in str(row):
        rows = str(row).split(':')
        return 1.0-float(rows[1])/float(rows[0])
    else:
        return float(row)
dfoff['discount_rate'] = dfoff['discount_rate'].apply(ConvertRate)
print(dfoff.head(3))

 

会发现报错:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-3-0aa06185ee75> in <module>()
      7     else:
      8         return float(row)
----> 9 dfoff['discount_rate'] = dfoff['discount_rate'].apply(ConvertRate)
     10 print(dfoff.head(3))

/opt/conda/lib/python3.6/site-packages/pandas/core/series.py in apply(self,func,convert_dtype,args,**kwds)
   2549             else:
   2550                 values = self.asobject
-> 2551                 mapped = lib.map_infer(values,f,convert=convert_dtype)
   2552 
   2553         if len(mapped) and isinstance(mapped[0],Series):

pandas/_libs/src/inference.pyx in pandas._libs.lib.map_infer()

<ipython-input-3-0aa06185ee75> in ConvertRate(row)
      1 def ConvertRate(row):
----> 2     if row.isnull():
      3         return 0
      4     elif ':' in str(row):
      5         rows = str(row).split(':')

AttributeError: 'float' object has no attribute 'isnull'

那它到底是什么数据类型呢?

print(type(np.nan))
print(type(np.inf))
<class 'float'>
<class 'float'>

NaN'就是表示一个普通的字符串,而np.nan就是代表真真的nan,那我们可不可以使用这样:

def ConvertRate(row):
    if row==np.nan:
        return 0
    elif ':' in str(row):
        rows = str(row).split(':')
        return 1.0-float(rows[1])/float(rows[0])
    else:
        return float(row)
dfoff['discount_rate'] = dfoff['discount_rate'].apply(ConvertRate)
print(dfoff.head(3))
   User_id  Merchant_id  Coupon_id discount_rate  distance  Date_received  \
0  1439408         2632        NaN           NaN       0.0            NaN   
1  1439408         4663    11002.0        150:20       1.0     20160528.0   
2  1439408         2632     8591.0          20:1       0.0     20160217.0   

         Date  discount_rate  
0  20160217.0            NaN  
1         NaN       0.866667  
2         NaN       0.950000  

可以看到这里还是NaN,并不是0,说明还是不对

那试一下:

def ConvertRate(row):
    if row==float('NaN'):
        return 0
    elif ':' in str(row):
        rows = str(row).split(':')
        return 1.0-float(rows[1])/float(rows[0])
    else:
        return float(row)
dfoff['discount_rate'] = dfoff['discount_rate'].apply(ConvertRate)
print(dfoff.head(3))

结果还是如上面,其实NaN数据类型就是一种特殊的float,这里相当于强制类型转化

那到底怎么办呢?其实判断是否是NaN可以使用如下方法:

row!=row

如果结果是真,那么就是NaN,假就代表不是NaN

可以看一下结果:

def ConvertRate(row):
    if row!=row:
        return 0
    elif ':' in str(row):
        rows = str(row).split(':')
        return 1.0-float(rows[1])/float(rows[0])
    else:
        return float(row)
dfoff['discount_rate'] = dfoff['discount_rate'].apply(ConvertRate)
print(dfoff.head(3))
print(dfoff.head(3))
   User_id  Merchant_id  Coupon_id discount_rate  distance  Date_received  \
0  1439408         2632        NaN           NaN       0.0            NaN   
1  1439408         4663    11002.0        150:20       1.0     20160528.0   
2  1439408         2632     8591.0          20:1       0.0     20160217.0   

         Date  discount_rate  
0  20160217.0       0.000000  
1         NaN       0.866667  
2         NaN       0.950000  

于是笔者最开始的那个问题也可以这样解决:

print('有优惠券,但是没有使用优惠券购买的客户有',dfoff[(dfoff['Coupon_id']==dfoff['Coupon_id'])&(dfoff['Date']!=dfoff['Date'])].shape[0])
有优惠券,但是没有使用优惠券购买的客户有 977900

---------------------------------------------------------------------------------------------------------------------------------------------------------------

有时候在使用apply的时候会报错,所以最好加一下:axis = 1意思是按列处理的

对应到上面就是吧:

dfoff['discount_rate'] = dfoff['discount_rate'].apply(ConvertRate)

改为:

dfoff['discount_rate'] = dfoff['discount_rate'].apply(ConvertRate,axis = 1)

------------------------------------------------------------------------------------------------------------------------------------------------------------

所以最后总结一下:

NaN和inf都是一种特殊的float数据类型

可以使用row!=row类似的形式来判断是否是NaN,如果是真就代表是NaN,假就代表不是NaN,换句话说也可以使用row==row来判断是否是NaN,只不过逻辑相反而已

报错记得加axis = 1

------------------------------------------------------------------------------------------------------------------------------------------------------

在使用pands加载数据的时候,其实我们是可以控制数据类型的,比如让缺省值变为null,而不是NAN,即让字段的数据类型不再是float,而是object,这里有一个例子:https://blog.csdn.net/weixin_42001089/article/details/85013073

 

 

 

bash – 如何定义shell脚本变量以使脚本位于脚本之外

bash – 如何定义shell脚本变量以使脚本位于脚本之外

我正在使用Ubuntu Natty.

我有一个shell脚本,我已保存到/etc/init.d/qstart. shell脚本包含以下内容:

apt-get -y update
apt-get -y upgrade
apt-get -y install tofrodos gcc make nmap lsof expect sysstat
dbpass="mydbpassword"

但是,在我执行脚本之后,我想测试dbpass是否已设置,并在提示符中输入echo $dbpass.但它是空的.

如何在我的shell脚本中定义一个变量,以便我可以在它之外访问它?!

提前致谢.

您无法在父进程的环境中设置变量.您只能设置当前流程的环境或为流程的子项准备环境.

也就是说,您可以指示shell在当前shell进程中从脚本运行命令,而不是分支新shell.你可以这样做:

source your_script.sh

要么

. your_script.sh

(注意点后面的空格).由于your_script.sh中的命令由当前shell运行,因此将保留对脚本内部环境所做的更改.

但是,如果运行脚本的shell不是您希望使用环境变量的shell的祖先,那么根本无法使用环境变量实现目标.例如,如果脚本在初始化时由某些无子shell运行,则所有环境设置都会完全丢失.在这种情况下,使用一些其他机制,如文件(可能在/ var下).

如果希望给定shell的所有实例都在其环境中设置某些变量,则可以使用大多数shell使用的初始化脚本.通常,它们具有系统范围和每用户初始化脚本.例如,bash使用/ etc / profile作为交互式登录shell的系统范围初始化脚本,并使用$HOME / .bash_profile(也是$HOME / .bash_login和$HOME / .profile)作为每用户初始化脚本.有关特定于bash的详细信息,请参阅this reference.如果您使用其他外壳,请尝试相应的手册.

bootstrap标准错误在引导类中存在于何处?

bootstrap标准错误在引导类中存在于何处?

考虑以下引导程序:

library(MASS)
library(boot)

# c)
set.seed(1)
boot.fn= function(data,index) mean(data[index])
output=boot(Boston$medv,boot.fn,1000)

如果我们运行print(输出),我们得到

Call:
boot(data = Boston$medv,statistic = boot.fn,R = 1000)


Bootstrap Statistics :
    original      bias    std. error
t1* 22.53281 0.008517589   0.4119374

但是,当我检查输出对象时,我找不到表示引导程序统计信息的值.哪里是原创,偏见和标准. boot返回的实际输出对象中的错误?

解决方法

它们由print.boot计算,不存储在引导对象中.查看getAnywhere(print.boot)了解详细信息.

您可以自己计算这些值,也可以使用capture.output.

对于你的例子:

#original:
output$t0
#bias:
mean(output$t)-output$t0
#se: 
sd(output$t)

我们今天的关于conda-unpack 脚本位于何处?conda.cli的分享就到这里,谢谢您的阅读,如果想了解更多关于.NET运行时(CLR),JIT编译器位于何处?、/opt/conda/lib/python3.6/site-packages/pandas/core/ops.py:816: pandas 处理 NaN、bash – 如何定义shell脚本变量以使脚本位于脚本之外、bootstrap标准错误在引导类中存在于何处?的相关信息,可以在本站进行搜索。

本文标签: