小编Del*_*ari的帖子

在pandas框架列中查找数组元素位置(aka pd.series)

我有一个类似于这个的熊猫框架:

import pandas as pd
import numpy as np

data = {'Col1' : [4,5,6,7], 'Col2' : [10,20,30,40], 'Col3' : [100,50,-30,-50], 'Col4' : ['AAA', 'BBB', 'AAA', 'CCC']}

df = pd.DataFrame(data=data, index = ['R1','R2','R3','R4'])

    Col1  Col2  Col3 Col4
R1     4    10   100  AAA
R2     5    20    50  BBB
R3     6    30   -30  AAA
R4     7    40   -50  CCC
Run Code Online (Sandbox Code Playgroud)

给定一系列目标:

target_array = np.array(['AAA', 'CCC', 'EEE'])
Run Code Online (Sandbox Code Playgroud)

我想找到Col4其中也出现的单元格元素索引target_array.

我试图找到一个记录在案的答案,但这似乎超出了我的技能......任何人都有任何建议吗?

PS顺便提一下,对于这种特殊情况,我可以输入一个目标数组,其元素是数据帧索引名array(['R1', 'R3', 'R5']).这样会更容易吗?

编辑1:

非常感谢你们所有的回复.可悲的是,我只能选择一个,但每个人似乎都认为@Divakar是最好的.仍然应该看看piRSquared和MaxU速度比较所有可能的可能性

python arrays indexing numpy pandas

9
推荐指数
4
解决办法
2113
查看次数

在python中的线性拟合,在x和y坐标中都具有不确定性

嗨,我想问我的同伴python用户如何执行他们的线性拟合.

我一直在搜索方法/库的最后两周来执行此任务,我想分享我的经验:

如果您想基于最小二乘法执行线性拟合,您有很多选择.例如,您可以在numpy和scipy中找到类.我自己选择了由linfit呈现的那个(遵循IDL中linfit函数的设计):

http://nbviewer.ipython.org/github/djpine/linfit/blob/master/linfit.ipynb

此方法假定您在y轴坐标中引入sigmas以适合您的数据.

但是,如果您已经量化了x轴和y轴的不确定性,则没有太多选项.(在主要的python科学图书馆中没有IDL"Fitexy"等价物).到目前为止,我只找到了"kmpfit"库来执行此任务.幸运的是,它有一个非常完整的网站,描述了它的所有功能:

https://github.com/josephmeiring/kmpfit http://www.astro.rug.nl/software/kapteyn/kmpfittutorial.html#

如果有人知道其他方法,我也很想知道它们.

无论如何,我希望这会有所帮助.

python linear-equation curve-fitting

8
推荐指数
2
解决办法
2万
查看次数

Pycharm 更改 github 凭据

我想知道是否有人可以帮助我解决这个问题:

我正在学习使用 github,到目前为止仅从 pycharm 开始。最近,我用新的用户名、电子邮件和地址更新了我的 github 页面。我在“设置 - > 版本控制 - > Github”中更改了 pycharm 中的凭据并运行测试我确实收到消息成功连接。然而,每当我尝试提交我的项目时,我都会收到一条失败的连接消息,因为它试图到达旧地址。这是我得到的消息:

Push failed:
ProjectName: failed with error: Authentication failed for 'Old_Repositoriy_url' 
Run Code Online (Sandbox Code Playgroud)

似乎其他用户也遇到了类似的错误,但是,我不知道如何从终端更改我的 git 凭据...

我在 ubuntu 16.04 中使用 pycharm 2017.2

谢谢你的任何建议

pycharm

4
推荐指数
1
解决办法
6461
查看次数

如何在父字符串列表中查找与子字符串列表对应的索引

我正在编写一个从文本文件中读取数据的代码.我使用numpy loadtxt加载数据,它看起来像这样:

import numpy as np

Shop_Products  = np.array(['Tomatos', 'Bread' , 'Tuna', 'Milk', 'Cheese'])
Shop_Inventory = np.array([12, 6, 10, 7, 8])
Run Code Online (Sandbox Code Playgroud)

我想检查一下我的产品:

Shop_Query     = np.array(['Cheese', 'Bread']
Run Code Online (Sandbox Code Playgroud)

现在我想在Shop_Products数组中找到这些"items"indeces,而不进行for循环和检查.

我想知道是否可以使用任何numpy方法:我想使用intercept1d找到常见项目然后使用searchsorted.但是,我无法对"产品"列表进行排序,因为我不想放弃原始排序(例如,我会使用索引直接查找每个产品的库存).

关于"pythonish"解决方案的任何建议?

python arrays string indexing numpy

3
推荐指数
1
解决办法
341
查看次数

使用pandas str.find方法切割dataframe列中的字符串

我有一个数据帧列,看起来像这样:

s = pd.Series(["a0a1a3", "b1b3", "c1c1c3c3"], index=["A", "B", "C"])
Run Code Online (Sandbox Code Playgroud)

我可以找到str.find方法在每个单元格中找到我想要的indeces:

s.str.find('1').values
array([3, 1, 1])
s.str.find('3').values
array([5, 3, 5])
Run Code Online (Sandbox Code Playgroud)

但是我找不到如何使用这些函数来剪切该列中的字符串.例如:

s.str[s.str.find('1').values:s.str.find('3').values].values
Run Code Online (Sandbox Code Playgroud)

array([ nan,  nan,  nan])
Run Code Online (Sandbox Code Playgroud)

哪种结合这些功能的正确方法?

python indexing slice pandas

3
推荐指数
1
解决办法
3035
查看次数

使用Python分离曲线的高斯分量

我正在尝试去混合低分辨率光谱的发射线以获得高斯分量。该图代表我正在使用的数据类型:

使用 Mduran 解法输入数据和高斯分量

经过一番搜索后,我发现的唯一选择是应用 kmpfit 包中的 gauest 函数(http://www.astro.rug.nl/software/kapteyn/kmpfittutorial.html#gauest)。我复制了他们的示例,但无法使其工作。

我想知道是否有人可以为我提供任何替代方法来执行此操作或如何更正我的代码:

import numpy as np
import matplotlib.pyplot as plt
from scipy import optimize

def CurveData():
    x = np.array([3963.67285156,  3964.49560547,  3965.31835938,  3966.14111328,  3966.96362305,
         3967.78637695,  3968.60913086,  3969.43188477,  3970.25463867,  3971.07714844,
         3971.89990234,  3972.72265625,  3973.54541016,  3974.36791992,  3975.19067383])
    y = np.array([1.75001533e-16,   2.15520995e-16,   2.85030769e-16,   4.10072843e-16, 7.17558032e-16,
         1.27759917e-15,   1.57074192e-15,   1.40802933e-15, 1.45038722e-15,  1.55195653e-15,
         1.09280316e-15,   4.96611341e-16, 2.68777266e-16,  1.87075114e-16,   1.64335999e-16])
    return x, y

def FindMaxima(xval, yval):
    xval = np.asarray(xval)
    yval = np.asarray(yval)

    sort_idx = np.argsort(xval)
    yval = yval[sort_idx]
    gradient = np.diff(yval)
    maxima = …
Run Code Online (Sandbox Code Playgroud)

python gaussian curve-fitting

2
推荐指数
1
解决办法
693
查看次数

使用相同的投影在图像上绘制线条

我想使用 .fits 文件(天文图像)绘制绘图,并且我遇到了两个我认为它们相关的问题:

使用天文学中的这个例子:

from matplotlib import pyplot as plt
from astropy.io import fits
from astropy.wcs import WCS
from astropy.utils.data import download_file

fits_file = 'http://data.astropy.org/tutorials/FITS-images/HorseHead.fits'
image_file = download_file(fits_file, cache=True)
hdu = fits.open(image_file)[0]
wcs = WCS(hdu.header)

fig = plt.figure()
fig.add_subplot(111, projection=wcs)
plt.imshow(hdu.data, origin='lower', cmap='cubehelix')
plt.xlabel('RA')
plt.ylabel('Dec')
plt.show()
Run Code Online (Sandbox Code Playgroud)

我可以生成这个图像:

在此输入图像描述

现在我想使用与图像相同的坐标绘制一些点:

plt.scatter(85, -2, color='red')
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时:

在此输入图像描述

我正在绘制像素坐标。此外,图像不再与帧大小匹配(尽管坐标看起来不错)

关于如何处理这些问题有什么建议吗?

python image matplotlib astronomy astropy

2
推荐指数
1
解决办法
1446
查看次数

掩盖位于两条曲线之间的图像(np.ndarray)部分

从天文学中借用这个例子:

import numpy as np
from matplotlib import pyplot as plt
from astropy.io import fits
from astropy.wcs import WCS
from astropy.utils.data import download_file

fits_file = 'http://data.astropy.org/tutorials/FITS-images/HorseHead.fits'
image_file = download_file(fits_file, cache=True)
hdu = fits.open(image_file)[0]
wcs = WCS(hdu.header)

fig = plt.figure()
ax = fig.add_subplot(111)
plt.imshow(hdu.data, origin='lower', cmap='cubehelix')
plt.xlabel('X')
plt.ylabel('Y')

x_array = np.arange(0, 1000)
line_1 = 1 * x_array + 20 * np.sin(0.05*x_array)
line_2 = x_array - 100 + 20 * np.sin(0.05*x_array)

plt.plot(x_array, line_1, color='red')
plt.plot(x_array, line_2, color='red')

ax.set_xlim(0, hdu.shape[1])
ax.set_ylim(0, hdu.shape[0])

plt.show() …
Run Code Online (Sandbox Code Playgroud)

python indexing numpy mask scikit-image

1
推荐指数
2
解决办法
765
查看次数