草庐IT

signaling_nan

全部标签

Python:使用 NaN 对数组进行排序

注意:我使用的是Python和numpy数组。我有很多数组,它们都有两列和很多行。第二列中有一些NaN值;第一列只有数字。我想根据第二列以升序对每个数组进行排序,将NaN值排除在外。这是一个大数据集,所以我宁愿不必将NaN值转换为零或其他值。我希望它像这样排序:105.4.22.10.104.26..........53.520.745.902.184.nan19.nan首先,我尝试使用fix_invalid将NaN转换为1x10^20:#data.txthasoneofthearrayswith2columnsandabunchofrows.Data_0_30=array(genfr

python - np.nan 和 isnull() 对比的区别

我以为是data[data.agefm.isnull()]和data[data.agefm==numpy.nan]是等价的。但是不,第一个真正返回agefm为NaN的行,但第二个返回一个空的DataFrame。我感谢省略的值总是等于np.nan,但这似乎是错误的。agefm列有float64类型:(Pdb)data.agefm.describe()count2079.000000mean20.686388std5.002383min10.00000025%17.00000050%20.00000075%23.000000max46.000000Name:agefm,dtype:floa

python - 使用 numpy nan 查找列表的最大值

这个问题在这里已经有了答案:Numpy:MaximalValueisNaN(1个回答)关闭5年前。importnumpyasnpprintmax([np.nan,1,2,3,4])printmax([1,2,3,4,np.nan])printmax([1,2,3,np.nan,4])第一个将nan打印为列表的最大值第二个将打印4作为列表的最大值第三个将打印4作为列表的最大值这个问题有解决办法吗?让所有数学函数都忽略nan?

python - 如何忽略 numpy 数组中的 NaN 数据点并在 Python 中生成规范化数据?

假设我有一个带有一些float('nan')的numpy数组,我现在不想估算这些数据,我想首先对这些数据进行归一化并将NaN数据保留在原始空间,有什么办法吗我能做到吗?之前我在sklearn.Preprocessing中使用了normalize函数,但该函数似乎不能将任何包含NaN的数组作为输入。 最佳答案 您可以使用numpy.ma.array函数屏蔽您的数组,然后应用任何numpy操作:importnumpyasnpa=np.random.rand(10)#Generaterandomdata.a=np.where(a>0.8,

python - 将 Pandas DataFrame 中的列值与 "NaN"值连接起来

我正在尝试将PandasDataFrame列与NaN值连接起来。In[96]:df=pd.DataFrame({'col1':["1","1","2","2","3","3"],'col2':["p1","p2","p1",np.nan,"p2",np.nan],'col3':["A","B","C","D","E","F"]})In[97]:dfOut[97]:col1col2col301p1A11p2B22p1C32NaND43p2E53NaNFIn[98]:df['concatenated']=df['col2']+','+df['col3']In[99]:dfOut[99]:c

python - numpy.polyfit 不处理 NaN 值

我对这段Python代码有疑问:importmatplotlibmatplotlib.use("Agg")importnumpyasnpimportpylabasplA1=np.loadtxt('/tmp/A1.txt',delimiter=',')A1_extrema=[min(A1),max(A1)]A2=np.loadtxt('/tmp/A2.txt',delimiter=',')pl.close()ab=np.polyfit(A1,A2,1)printabfit=np.poly1d(ab)printfitr2=np.corrcoef(A1,A2)[0,1]printr2pl.p

python - numpy.arctanh(x) for x >= 1 返回 NaN 但我想要复数

当我对x>=1执行numpy.arctanh(x)操作时,它返回nan,这很奇怪,因为当我在Wolfram|alpha中执行操作时,它返回复数值,这是我需要的应用。有谁知道我可以做些什么来防止Numpy抑制复数值? 最佳答案 将+0j添加到您的实数输入中,使它们成为复数。Numpy遵循格言“垃圾输入,垃圾输出”的变体。浮入,浮出。>>>importnumpyasnp>>>np.sqrt(-1)__main__:1:RuntimeWarning:invalidvalueencounteredinsqrtnan复杂的输入,复杂的输出。>

python - Python 和 Numpy 中自定义 NaN float 的行为

我需要将一些额外的信息打包到浮点NaN值中。我在Python中使用单精度IEEE754浮点数(32位浮点数)。Python和NumPy如何处理这些值?理论IEEE754-2008标准似乎认为一个数字真的不是一个数字,如果指数位(23..30)被设置,并且至少一个有效位被设置。因此,如果我们将浮点数转换为32位整数表示,则满足以下条件的任何内容都会发生:i&0x7f800000==0x7f800000i&0x007fffff!=0这会让我有很多选择。但是,标准似乎是说有效数的最高位是is_quiet,应该设置以避免计算中出现异常。实际测试python2.7为了确定起见,我进行了一些测试,

python - 减去数据帧 Pandas 时的NaN

我有两个数据框,它们的索引和列只是有些重叠。old=pd.DataFrame(index=['A','B','C'],columns=['k','l','m'],data=abs(np.floor(np.random.rand(3,3)*10)))new=pd.DataFrame(index=['A','B','C','D'],columns=['k','l','m','n'],data=abs(np.floor(np.random.rand(4,4)*10)))我想计算它们和试过的区别delta=new-old这会产生很多索引和列不匹配的NaN。我想将索引和列的缺失视为零,(old[

python - 获取具有 NaN 值的所有行

我有一个表,其中有一列包含一些NaN值:ABCD232Nan3455231Nan我想获取D=NaN的所有行。我该怎么做? 最佳答案 创建一个df用于说明(包含Nan)In[86]:df=pd.DataFrame({'a':[1,2,3],'b':[3,4,5],'c':[np.nan,4,5]})In[87]:dfOut[87]:abc013NaN12442355检查哪些索引对于c列为nullIn[88]:pd.isnull(df['c'])Out[88]:0True1False2FalseName:c,dtype:bool检查哪些