相关疑难解决方法(0)

numpy中的"标量"是什么?

文档说明了标量的目的,例如浮点数和整数等常规Python数字过于原始,因此需要更复杂的数据类型.

它还说明了某些类型的标量(数据类型层次结构); 以及标量的几个属性.
但它从来没有给出具体的定义,确切地说Python中的标量是什么.

我想谈谈这个问题的核心.所以我的问题是,用最简单的术语,向我解释一个pythonic标量是什么.

python numpy scipy

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

术语:Python和Numpy - "iterable"与"array_like"

Python程序中的一个iterable和一个array_like对象有什么区别Numpy

双方iterablearray_like经常看到的Python文档和他们分享一些相似的性质.

我知道在这种情况下,array_like对象应该支持Numpy类型操作,如广播,但是Numpy数组区域也是可迭代的.说这array_like是一个扩展(或超集?)是正确的iterable吗?

python numpy

21
推荐指数
2
解决办法
4329
查看次数

什么是Python的序列协议?

Python使用魔术方法做了很多,其中大部分是一些协议的一部分.我熟悉"迭代器协议"和"数字协议",但最近偶然发现术语"序列协议".但即使经过一些研究,我也不确定"序列协议"是什么.

例如,C API函数PySequence_Check检查(根据文档)某个对象是否实现了"序列协议".该源代码表明这是一类,这不是一个字典,但实现__getitem__它的方法大致相同,在什么文件iter还指出:

[...]必须支持序列协议(__getitem__()整数参数从0开始的方法).[...]

但是开始的要求0不是"实施"的PySequence_Check.

然后还有的collections.abc.Sequence类型,它基本上是说实例必须实现__reversed__,__contains__,__iter____len__.

但是根据该定义,实现"序列协议"的类不一定是序列,例如序列具有长度的"数据模型"和抽象类garantuee.但是实现__getitem__(传递PySequence_Check)的类在使用时会抛出异常len(an_instance_of_that_class).

有人可以告诉我序列和序列协议之间的区别(如果除了阅读源代码之外还有协议的定义)以及何时使用哪个定义?

python cpython sequence python-internals

16
推荐指数
1
解决办法
1620
查看次数

为什么需要将地图转换为列表以将其分配给pandas系列?

我刚开始学习大熊猫的基础知识,有一件事让我思考.

import pandas as pd
data = pd.DataFrame({'Column1': ['A', 'B', 'C']})
data['Column2'] = map(str.lower, data['Column1'])
print(data)
Run Code Online (Sandbox Code Playgroud)

该程序的输出是:

   Column1                             Column2
 0       A  <map object at 0x00000205D80BCF98>
 1       B  <map object at 0x00000205D80BCF98>
 2       C  <map object at 0x00000205D80BCF98>
Run Code Online (Sandbox Code Playgroud)

获得所需输出的一种可能解决方案是将地图对象类型转换为列表.

import pandas as pd
data = pd.DataFrame({'Column1': ['A', 'B', 'C']})
data['Column2'] = list(map(str.lower, data['Column1']))
print(data)
Run Code Online (Sandbox Code Playgroud)

输出:

   Column1 Column2
 0       A       a
 1       B       b
 2       C       c
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用range(),它也在Python 3中返回自己的类型,则无需将对象类型转换为列表.

import pandas as pd
data = pd.DataFrame({'Column1': ['A', 'B', 'C']})
data['Column2'] = range(3) …
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas

10
推荐指数
1
解决办法
163
查看次数

get_dummies(),例外:数据必须是1维的

我有这些数据

在此输入图像描述

我想申请这个:

one_hot = pd.get_dummies(df)
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

在此输入图像描述

这是我的代码,直到那时:

# Import modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import tree
df = pd.read_csv('AllMSAData.csv')
df.head()
corr_matrix = df.corr()
corr_matrix
df.describe()
# Get featurs and targets
labels = np.array(df['CurAV'])
# Remove the labels from the features
# axis 1 refers to the columns
df = df.drop('CurAV', axis = 1)
# Saving feature names for later use
feature_list = list(df.columns)
# Convert to numpy array
df = …
Run Code Online (Sandbox Code Playgroud)

python numpy machine-learning pandas

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

在python中导入模块和方法名称

假设我导入以下两个模块如下:

from sympy import *
from numpy import *
Run Code Online (Sandbox Code Playgroud)

两个模块都exp()定义了一个功能.python如何选择使用哪一个?有没有办法在上面导入模块后区分这些功能?在这种情况下,有什么机制可以警告用户?考虑以下一组命令IDLE

=============================== RESTART: Shell ===============================
>>> from sympy import *
>>> from numpy import *
>>> exp(5)
148.4131591025766
>>> c = symbols('c')
>>> exp(c)
Traceback (most recent call last):
  File "<pyshell#162>", line 1, in <module>
    exp(c)
AttributeError: 'Symbol' object has no attribute 'exp'
>>> 
=============================== RESTART: Shell ===============================
>>> from sympy import *
>>> c = symbols('c')
>>> exp(c)
exp(c)
Run Code Online (Sandbox Code Playgroud)

看来默认情况下 python使用了exp()定义,numpy但是当它被一个被sympy …

python numpy sympy

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