我需要在Python的切片表示法上有一个很好的解释(引用是一个加号).
对我来说,这种符号需要一点点提升.
它看起来非常强大,但我还没有完全了解它.
我正在尝试为我正在创建的类创建切片功能,以创建矢量表示.
到目前为止我有这个代码,我相信它会正确地实现切片,但每当我做一个调用,就像v[4]v是一个向量python返回一个关于没有足够的参数的错误.所以我试图弄清楚如何getitem在我的类中定义特殊方法来处理普通索引和切片.
def __getitem__(self, start, stop, step):
index = start
if stop == None:
end = start + 1
else:
end = stop
if step == None:
stride = 1
else:
stride = step
return self.__data[index:end:stride]
Run Code Online (Sandbox Code Playgroud) 我想将切片传递给函数,以便我可以选择列表的一部分。作为字符串传递更可取,因为我将从用户那里读取所需的切片作为命令行选项。
def select_portion(list_to_slice, slicer):
return(list_to_slice[slicer])
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
slicer = "1:4"
print(select_portion(numbers, slicer))
Run Code Online (Sandbox Code Playgroud)
我得到以下信息:
TypeError: list indices must be integers or slices, not str
Run Code Online (Sandbox Code Playgroud)
这是可以理解的,但我不知道如何修改它以获得预期的输出:
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud) 我想写这样的代码:
index = 0:2
print(list[index])
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
有什么办法可以将[...:...]语法的所有部分存储在变量中吗?
我创建了一个简单的代码来实现OneHotEncoder。
from sklearn.preprocessing import OneHotEncoder
X = [[0, 'a'], [0, 'b'], [1, 'a'], [2, 'b']]
onehotencoder = OneHotEncoder(categories=[0])
X = onehotencoder.fit_transform(X).toarray()
Run Code Online (Sandbox Code Playgroud)
我只是想用方法中调用fit_transform的X索引0,所以这意味着对于[0, 0, 1, 2]像你在看X。但它会导致这样的错误:
ValueError: Shape mismatch: if categories is an array, it has to be of shape (n_features,).
任何人都可以解决这个问题?我被困在它上面
>> a = range(10)
>> print a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
Run Code Online (Sandbox Code Playgroud)
该切片给出了反向列表.它是如何工作的?
我正在关注本教程:GitHub链接
如果您向下滚动(Ctrl + F:练习:选择最受欢迎的啤酒)到显示以下内容的部分Exercise: Select the most-reviewd beers:
要选择评论最多的啤酒:
top_beers = df['beer_id'].value_counts().head(10).index
reviews.loc[pd.IndexSlice[:, top_beers], ['beer_name', 'beer_style']]
Run Code Online (Sandbox Code Playgroud)
我的问题是如何使用IndexSlice,如何在top_beers之后代码仍然运行的情况下跳过冒号?
reviews.loc[pd.IndexSlice[:, top_beers, :], ['beer_name', 'beer_style']]
Run Code Online (Sandbox Code Playgroud)
有三个索引pofile_name,beed_id和time。为什么pd.IndexSlice[:, top_beers]起作用(未指定如何处理时间列)?
python ×7
slice ×3
list ×2
iterable ×1
pandas ×1
python-3.x ×1
scikit-learn ×1
spyder ×1
variables ×1