我有一个特定的JSON节点,对应于导入org.codehaus.jackson.JsonNode,而不是导入org.codehaus.jackson.map.JsonNode.
[
{
"givenName": "Jim",
"formattedName": "jimJackson",
"familyName": null,
"middleName": "none",
"honorificPrefix": "mr",
"honorificSuffix": "none"
},
{
"givenName": "john",
"formattedName": "johnLasher",
"familyName": null,
"middleName": "none",
"honorificPrefix": "mr",
"honorificSuffix": "none"
},
{
"givenName": "carlos",
"formattedName": "carlosAddner",
"familyName": null,
"middleName": "none",
"honorifiPrefix": "mr",
"honorificSuffix": "none"
},
{
"givenName": "lisa",
"formattedName": "lisaRay",
"familyName": null,
"middleName": "none",
"honorificPrefix": "mrs",
"honorificSuffix": "none"
},
{
"givenName": "bradshaw",
"formattedName": "bradshawLion",
"familyName": null,
"middleName": "none",
"honorificPrefix": "mr",
"honorificSuffix": "none"
},
{
"givenName": "phill",
"formattedName": "phillKane",
"familyName": null,
"middleName": …Run Code Online (Sandbox Code Playgroud) 我想从列表中替换outliners.因此我定义了上限和下限.现在,上面upper_bound和下面的每个值lower_bound都被绑定值替换.我的方法是使用numpy数组分两步完成.
现在我想知道是否可以一步完成,因为我猜它可以提高性能和可读性.
有没有更短的方法来做到这一点?
import numpy as np
lowerBound, upperBound = 3, 7
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr[arr > upperBound] = upperBound
arr[arr < lowerBound] = lowerBound
# [3 3 3 3 4 5 6 7 7 7]
print(arr)
Run Code Online (Sandbox Code Playgroud) 我在.csv文件中有一个数据集(dataTrain.csv和dataTest.csv),格式如下:
Temperature(K),Pressure(ATM),CompressibilityFactor(Z)
273.1,24.675,0.806677258
313.1,24.675,0.888394713
...,...,...
Run Code Online (Sandbox Code Playgroud)
并且能够使用以下代码构建回归模型和预测:
import pandas as pd
from sklearn import linear_model
dataTrain = pd.read_csv("dataTrain.csv")
dataTest = pd.read_csv("dataTest.csv")
# print df.head()
x_train = dataTrain['Temperature(K)'].reshape(-1,1)
y_train = dataTrain['CompressibilityFactor(Z)']
x_test = dataTest['Temperature(K)'].reshape(-1,1)
y_test = dataTest['CompressibilityFactor(Z)']
ols = linear_model.LinearRegression()
model = ols.fit(x_train, y_train)
print model.predict(x_test)[0:5]
Run Code Online (Sandbox Code Playgroud)
但是,我想要做的是多元回归.所以,模型将是CompressibilityFactor(Z) = intercept + coef*Temperature(K) + coef*Pressure(ATM)
如何在scikit-learn中做到这一点?
我正在尝试用默认值替换低于和高于阈值的“坏值”(例如将它们设置为 NaN)。 \n我正在取消具有 1000k 值及更多值的 numpy 数组 - 因此性能是一个问题。
\n\n我的原型分两步进行操作,是否可以一步完成此操作?
\n\nimport numpy as np\n\ndata = np.array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])\n\nupper_threshold = 7\nlower_threshold = 1\ndefault_value = np.NaN\n\n# is it possible to do this in one expression?\ndata[data > upper_threshold] = default_value\ndata[data < lower_threshold] = default_value\n\nprint data # [ nan 1. 2. 3. 4. 5. 6. 7. nan nan]\nRun Code Online (Sandbox Code Playgroud)\n\n正如这个相关问题中所评论的(用上限和下限替换列表值的Pythonic way(钳制、剪裁、阈值处理)?)
\n\n\n与许多其他函数一样,np.clip 是 python 的,但它遵循 arr.clip 方法。对于常规数组,该方法是编译的,因此速度会更快(大约 2 倍)。\xe2\x80\x93 hpaulj
\n …
我知道这个问题在其他图书馆被问过数百万次。然而,其他讨论中的答案都没有帮助。
我试过:
import datetime
print datetime.version
import datetime
print datetime._version_
import datetime
print datetime.__version__
Run Code Online (Sandbox Code Playgroud)
没有一个在工作。
它说
属性错误:AttributeError:“模块”对象没有属性“版本”
其他人也一样。
这个库确实有版本:https : //pypi.python.org/pypi/DateTime
有点奇怪的问题,但是我在编码时偶然发现了这个问题。
这是我的代码
编辑:我添加了类以使我的结构更清晰
class Hidden(object):
def x(self, aa, bb="John Doe"):
print aa, bb
class Open(object):
def __init__(self):
self.h = Hidden()
def y(self, a, b=None):
# get rid of this if-else-foo
if b is None:
self.h.x(a)
else:
self.h.x(a, b)
o = Open()
o.y("Hello") # > Hello John Doe
o.y("Hello", "Mister X") # > Hello Mister X
Run Code Online (Sandbox Code Playgroud)
如果b是None(未设置),则我希望x不带参数的情况下调用方法(使用默认值)。
我想知道是否有办法摆脱if-else foo?
解
因为我只能接受一个答案,所以我可以说,所有列出的解决方案都有效。
这是给定答案的摘要:
*args很难阅读。if说法,我想避免。我已从 url 获取 json 数据并将其写入文件名 urljson.json 我想格式化 json 数据,删除 '\' 和结果 [] 键以满足需求 在我的 json 文件中,数据排列如下
{\"result\":[{\"BldgID\":\"1006AVE \",\"BldgName\":\"100-6th Avenue SW (Oddfellows) \",\"BldgCity\":\"Calgary \",\"BldgState\":\"AB \",\"BldgZip\":\"T2G 2C4 \",\"BldgAddress1\":\"100-6th Avenue Southwest \",\"BldgAddress2\":\"ZZZ None\",\"BldgPhone\":\"4035439600 \",\"BldgLandlord\":\"1006AV\",\"BldgLandlordName\":\"100-6 TH Avenue SW Inc. \",\"BldgManager\":\"AVANDE\",\"BldgManagerName\":\"Alyssa Van de Vorst \",\"BldgManagerType\":\"Internal\",\"BldgGLA\":\"34242\",\"BldgEntityID\":\"1006AVE \",\"BldgInactive\":\"N\",\"BldgPropType\":\"ZZZ None\",\"BldgPropTypeDesc\":\"ZZZ None\",\"BldgPropSubType\":\"ZZZ None\",\"BldgPropSubTypeDesc\":\"ZZZ None\",\"BldgRetailFlag\":\"N\",\"BldgEntityType\":\"REIT \",\"BldgCityName\":\"Calgary \",\"BldgDistrictName\":\"Downtown \",\"BldgRegionName\":\"Western Canada \",\"BldgAccountantID\":\"KKAUN \",\"BldgAccountantName\":\"Kendra Kaun \",\"BldgAccountantMgrID\":\"LVALIANT \",\"BldgAccountantMgrName\":\"Lorretta Valiant \",\"BldgFASBStartDate\":\"2012-10-24\",\"BldgFASBStartDateStr\":\"2012-10-24\"}]}
Run Code Online (Sandbox Code Playgroud)
我想要这样的格式
[
{
"BldgID":"1006AVE",
"BldgName":"100-6th Avenue SW (Oddfellows) ",
"BldgCity":"Calgary ",
"BldgState":"AB ",
"BldgZip":"T2G 2C4 ",
"BldgAddress1":"100-6th Avenue Southwest ",
"BldgAddress2":"ZZZ None",
"BldgPhone":"4035439600 ", …Run Code Online (Sandbox Code Playgroud) pandas.DataFrame我尝试按照离散时间信号的公式计算信号能量。我尝试使用applyand applymap,也尝试使用reduce,如下所示:How do I columnwise reduce a pandas dataframe? 。但我尝试的所有结果都是对每个元素进行操作,而不是对整个列进行操作。
这不是一个信号处理特定的问题,它只是一个如何将“汇总”(我不知道这个的正确术语)函数应用于列的示例。
我的解决方法是获取原始numpy.array数据并进行计算。但我很确定有一种熊猫式的方法可以做到这一点(而且肯定是一种更笨拙的方法)。
import pandas as pd
import numpy as np
d = np.array([[2, 2, 2, 2, 2, 2, 2, 2, 2, 2],
[0, -1, 2, -3, 4, -5, 6, -7, 8, -9],
[0, 1, -2, 3, -4, 5, -6, 7, -8, 9]]).transpose()
df = pd.DataFrame(d)
energies = []
# a same as d
a = df.as_matrix()
assert(np.array_equal(a, d))
for …Run Code Online (Sandbox Code Playgroud) 我有一个包含eeg,陀螺仪和其他数据的数据字典。为了进行处理,我想在单独的字典中提取eeg和陀螺仪数据。因此,我有两个列表,分别带有eeg和陀螺仪的键。我通过两个dict理解使其工作,但也许对此有一个更平滑的解决方案。
eegKeys = ["FP3", "FP4"]
gyroKeys = ["X", "Y"]
# 'Foo' is ignored
data = {"FP3": 1, "FP4": 2, "X": 3, "Y": 4, "Foo": 5}
eegData = {x: data[x] for x in data if x in eegKeys}
gyroData = {x: data[x] for x in data if x in gyroKeys}
print(eegData, gyroData) # ({'FP4': 2, 'FP3': 1}, {'Y': 4, 'X': 3})
Run Code Online (Sandbox Code Playgroud) 我目前已经安装了pip 8.1.2.
所以我想将它升级到最新版本(9.0.1)并执行:
sudo pip install --upgrade pip
Collecting pip
Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
100% |????????????????????????????????| 1.3MB 846kB/s
Installing collected packages: pip
Found existing installation: pip 8.1.2
Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Successfully installed pip-8.1.2
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Run Code Online (Sandbox Code Playgroud)
它似乎正确下载9.0.1但它拒绝卸载现有安装(8.1.2)
然后最后它建议我使用我已经提供的相同的指令进行升级!
我做错了吗?