小编ahb*_*bon的帖子

Pytorch 运行时错误:张量 a (4) 的大小必须与非单维 0 处的张量 b (3) 的大小匹配

我使用这里的代码来训练一个模型来预测从0到的打印样式编号9

idx_to_class = {0: "0", 1: "1", 2: "2", 3: "3", 4: "4", 5: "5", 6: "6", 7:"7", 8: "8", 9:"9"}
def predict(model, test_image_name):

    transform = image_transforms['test']

    test_image = Image.open(test_image_name)
    plt.imshow(test_image)

    test_image_tensor = transform(test_image)

    if torch.cuda.is_available():
        test_image_tensor = test_image_tensor.view(1, 3, 224, 224).cuda()
    else:
        test_image_tensor = test_image_tensor.view(1, 3, 224, 224)

    with torch.no_grad():
        model.eval()
        # Model outputs log probabilities
        out = model(test_image_tensor)
        ps = torch.exp(out)
        topk, topclass = ps.topk(1, dim=1)
        # print(topclass.cpu().numpy()[0][0])
        print("Image class:  ", idx_to_class[topclass.cpu().numpy()[0][0]]) …
Run Code Online (Sandbox Code Playgroud)

python image-processing computer-vision pytorch

22
推荐指数
1
解决办法
5万
查看次数

如何在 ggplot2 中每 3 或 6 个月显示日期 x 轴标签

我用下面的代码生成一个图:

ggplot(reshaped_median, aes(x= Month_Yr, y = value))+ 
  geom_line(aes(color = Sentiments)) + 
  geom_point(aes(color = Sentiments)) + 
  labs(title = 'Change in Sentiments (in median)', x = 'Month_Yr', y = 'Proportion of Sentiments %') + 
  theme(axis.text.x = element_text(angle = 60, hjust = 1))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但正如您所注意到的,x 轴上的日期标签太密集,因此如果我想要它每季度或每半年(每 3 或 6 个月)显示日期。

来自的值的Month_Yr格式为%Y-%m

我怎么能这么做呢?谢谢。

r ggplot2

11
推荐指数
2
解决办法
9498
查看次数

用一个值替换 Pandas 系列中的多个子字符串

全部,

要替换某一列中的一个字符串,我已经完成了此操作,并且效果很好:

dataUS['sec_type'].str.strip().str.replace("LOCAL","CORP")
Run Code Online (Sandbox Code Playgroud)

我现在想用一个字符串替换多个字符串说替换["LOCAL", "FOREIGN", "HELLO"]"CORP"

怎样才能让它发挥作用?下面的代码不起作用

dataUS['sec_type'].str.strip().str.replace(["LOCAL", "FOREIGN", "HELLO"], "CORP")
Run Code Online (Sandbox Code Playgroud)

python string series python-2.7 pandas

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

在 R 中使用 read_excel 或 read.excel 时跳过行

我有一个这样的Excel文件:

在此输入图像描述

我尝试读入read.xlsxread_excel跳过第二行:

library(xlsx)
df <- read.xlsx('./data.xls', 'Sheet1')

library(readxl)
df <- read_excel("./data.xls", sheet = 'Sheet0', skip = 2, col_names = TRUE)
Run Code Online (Sandbox Code Playgroud)

第一个 ( read.xlsx),我没有找到skip行参数,第二个给出了df没有标题的参数。

上面的代码哪里做错了,如何正确阅读?谢谢。

r xlsx readxl

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

基于pandas中的列进行分组和自动增量

我有一个看起来像这样的熊猫框架:

在此处输入图片说明

有没有办法在最后一列中添加数字而不必遍历数据框?

在大熊猫中使用分组和自动递增组 ID的结果,但没有使它适合我的目的

这是生成数据帧的代码

import pandas as pd
columns = ['Product','SubProd', 'NeedThis']
Index=['4/20/2012','4/27/2012','5/4/2012','5/11/2012','5/18/2012','4/20/2012',
'4/27/2012','5/4/2012','5/11/2012','5/18/2012','5/25/2012','10/31/2014','11/7/2014',
'11/14/2014','11/21/2014','11/28/2014']
datas = {'Product' : ['A','A','A','A','A','A','A','A','A','A','A','B','B','B','B','B'],
      'SubProd' : ['BL','BL','BL','BL','BL','lk','lk','lk','lk','lk','lk','po','po','po','po','po']}
df = pd.DataFrame(data=datas, index=Index)
print(df)
Run Code Online (Sandbox Code Playgroud)

输出:

           Product SubProd
4/20/2012        A      BL
4/27/2012        A      BL
5/4/2012         A      BL
5/11/2012        A      BL
5/18/2012        A      BL
4/20/2012        A      lk
4/27/2012        A      lk
5/4/2012         A      lk
5/11/2012        A      lk
5/18/2012        A      lk
5/25/2012        A      lk
10/31/2014       B      po
11/7/2014        B      po
11/14/2014       B      po
11/21/2014       B …
Run Code Online (Sandbox Code Playgroud)

python pandas

7
推荐指数
1
解决办法
5069
查看次数

为什么每次我调用 shap.plots.beeswarm 时 shap 值都会发生变化?

这是我使用 shap 的代码:

在此输入图像描述

由于我只是绘制了相同形状值的三倍,因此我希望这三个图是相同的。然而,它一直在变化。经过一些研究,似乎每次调用时顶部都会出现一个新值,但为什么呢?这是形状中的错误吗?

编辑1:我尝试在每次调用之间加载相同的模型shap.plots.beeswarm,但结果仍然不同。

python xgboost shap

7
推荐指数
1
解决办法
2744
查看次数

在Python中使用模糊匹配合并多列数据框

我有两个示例数据帧,如下所示:

df1 = pd.DataFrame({'Name': {0: 'John', 1: 'Bob', 2: 'Shiela'}, 
                   'Degree': {0: 'Masters', 1: 'Graduate', 2: 'Graduate'}, 
                   'Age': {0: 27, 1: 23, 2: 21}}) 

df2 = pd.DataFrame({'Name': {0: 'John S.', 1: 'Bob K.', 2: 'Frank'}, 
                   'Degree': {0: 'Master', 1: 'Graduated', 2: 'Graduated'}, 
                   'GPA': {0: 3, 1: 3.5, 2: 4}}) 
Run Code Online (Sandbox Code Playgroud)

我想使用模糊匹配方法基于两列“名称”和“度”将它们合并在一起,以排除可能的重复项。这是我在此处的参考帮助下所实现的: 在数据框列上应用模糊匹配并将结果保存在新列中

from fuzzywuzzy import fuzz
from fuzzywuzzy import process

compare = pd.MultiIndex.from_product([df1['Name'],
                                      df2['Name']]).to_series()

def metrics(tup):
    return pd.Series([fuzz.ratio(*tup),
                      fuzz.token_sort_ratio(*tup)],
                     ['ratio', 'token'])
compare.apply(metrics)

compare.apply(metrics).unstack().idxmax().unstack(0)

compare.apply(metrics).unstack(0).idxmax().unstack(0)
Run Code Online (Sandbox Code Playgroud)

假设一个人的fuzz.ratio的名字和学位的比率都高于80,我们认为他们是同一个人。并将df1中的Name和Degree作为默认值。如何获得以下预期结果?谢谢。

df = df1.merge(df2, on = ['Name', …
Run Code Online (Sandbox Code Playgroud)

python fuzzy-comparison dataframe pandas

5
推荐指数
1
解决办法
820
查看次数

从 pandas 数据框中仅提取数字和字符串

我试图在两个不同的数据框中仅提取数字和字符串。我正在使用正则表达式来提取数字和字符串。

\n
import pandas as pd\n\ndf_num = pd.DataFrame({\n        \'Colors\': [\'lila1.5\', \'rosa2.5\', \'gelb3.5\', \'gr\xc3\xbcn4\', \'rot5\', \'schwarz6\', \'grau7\', \'wei\xc3\x9f8\', \'braun9\', \'hellblau10\'],\n        \'Animals\': [\'hu11nd\', \'12welpe\', \'13katze\', \'s14chlange\', \'vo15gel\', \'16papagei\', \'ku17h\', \'18ziege\', \'19pferd\',\n                    \'esel20\']\n    })\n\nfor column in df_num.columns:\n    df_num[column] = df_num[column].str.extract(\'(\\d+)\').astype(float)\n\nprint(df_num)\n
Run Code Online (Sandbox Code Playgroud)\n

我也尝试过使用\'([\\d+][\\d+\\.\\d+])\' and \'([\\d+\\.\\d+])\'

\n

在这里我得到了输出,但不是我所期望的。虽然我期待浮点数,但我没有得到 1.5 或 2.5。

\n

我得到如下图所示的内容:

\n

在此输入图像描述

\n
df_str = pd.DataFrame({\n        \'Colors\': [\'lila1.5\', \'rosa2.5\', \'gelb3\', \'gr\xc3\xbcn4\', \'rot5\', \'schwarz6\', \'grau7\', \'wei\xc3\x9f8\', \'braun9\', \'hellblau10\'],\n        \'Animals\': [\'hu11nd\', \'12welpe\', \'13katze\', \'s14chlange\', \'vo15gel\', \'16papagei\', \'ku17h\', \'18ziege\', \'19pferd\',\n                    \'esel20\']\n    })\n\nfor column in df_str.columns:\n …
Run Code Online (Sandbox Code Playgroud)

text-extraction dataframe python-3.x pandas data-science

5
推荐指数
1
解决办法
1万
查看次数

检查 Python 中某个范围内缺少的整数

给定一个建筑信息数据框,如下所示:

    id  floor     type
0    1     13   office
1    2     12   office
2    3      9   office
3    4      9   office
4    5      7   office
5    6      6   office
6    7      9   office
7    8      5   office
8    9      5   office
9   10      5   office
10  11      4   retail
11  12      3   retail
12  13      2   retail
13  14      1   retail
14  15     -1  parking
15  16     -2  parking
16  17     13   office
Run Code Online (Sandbox Code Playgroud)

我想检查列floor中是否缺少楼层(楼层 0 除外,默认情况下不存在楼层)。

代码: …

numpy range dataframe python-3.x pandas

5
推荐指数
1
解决办法
50
查看次数

使用 R 中数据框列表中的数据框名称附加新列

给定数据帧列表l如下:

l <- list(a = data.frame(a_1 = c(11, 12),
                        a_2 = c(13, 14)),
          b = data.frame(b_1 = c(21, 22),
                        b_2 = c(23, 24)),
          c = data.frame(c_1 = c(31, 32),
                          c_2 = c(33, 34)))
print(l)
Run Code Online (Sandbox Code Playgroud)

出去:

在此输入图像描述

现在我想new_col使用每个数据框的名称附加一个新列:

l[['a']]$new_col = 'a'
l[['b']]$new_col = 'b'
l[['c']]$new_col = 'c'
Run Code Online (Sandbox Code Playgroud)

names(l)我想知道如何自动使用哪个为每个数据框附加列[1] "a" "b" "c"?谢谢。

最终的结果会是这样的:

在此输入图像描述

r plyr dataframe dplyr

5
推荐指数
1
解决办法
1510
查看次数