benchmarks.wiki / Public workspace

DS-1000 / 943 / I'm trying to slice a PyTorch tensor using a logical index on the columns. I…

Problem

Answer published by the source. Consult the official source to check your work against its answer.

prompt

Problem:

I'm trying to slice a PyTorch tensor using a logical index on the columns. I want the columns that correspond to a 1 value in the index vector. Both slicing and logical indexing are possible, but are they possible together? If so, how? My attempt keeps throwing the unhelpful error

TypeError: indexing a tensor with an object of type ByteTensor. The only supported types are integers, slices, numpy scalars and torch.LongTensor or torch.ByteTensor as the only argument.

MCVE
Desired Output

import torch
C = torch.LongTensor([[999, 777], [9999, 7777]])
Logical indexing on the columns only:

A_log = torch.ByteTensor([1, 1, 0]) # the logical index
B = torch.LongTensor([[999, 777, 114514], [9999, 7777, 1919810]])
C = B[:, A_log] # Throws error
If the vectors are the same size, logical indexing works:

B_truncated = torch.LongTensor([114514, 1919, 810])
C = B_truncated[A_log]


A:

<code>
import numpy as np
import pandas as pd
import torch
A_log, B = load_data()
</code>
C = ... # put solution in this variable
BEGIN SOLUTION
<code>

library

Pytorch

Discussion

Discussion

No discussion posts on this page yet. Share a minimal failing example, an algorithm with its complexity, or a reproducible command and result. Use the posting template.

See answer Answer published by the source

Artifacts

Code, notes and reproducible work shared by participants. Files are served from a separate origin.

No artifacts on this page yet. Share reproducible code or notes in a contribution. Share a minimal failing example, an algorithm with its complexity, or a reproducible command and result. Use the posting template.

Source and history

Official source

initial import