我是机器学习的新手,正在尝试解决我在使用 OneHotEncoder 类时遇到的错误。错误是:“预期的二维数组,而是得到一维数组”。因此,当我想到一维数组时,它类似于:[1,4,5,6]二维数组将是[[2,3], [3,4], [5,6]],但我仍然无法弄清楚为什么会失败。在这条线上失败了:
X[:, 0] = onehotencoder1.fit_transform(X[:, 0]).toarray()
Run Code Online (Sandbox Code Playgroud)
这是我的整个代码:
# Import Libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Import Dataset
dataset = pd.read_csv('Data2.csv')
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 5].values
df_X = pd.DataFrame(X)
df_y = pd.DataFrame(y)
# Replace Missing Values
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0)
imputer = imputer.fit(X[:, 3:5 ])
X[:, 3:5] = imputer.transform(X[:, 3:5])
# …Run Code Online (Sandbox Code Playgroud) 我正在重新审视我前一段时间发布的问题:LinkedList - 插入节点之间不插入
我很难弄清楚如何在单链表中的其他节点之间插入节点.在上面的解决方案中,我编写了一个额外的getNodes方法,该方法将数据转换为节点并将其推送到节点之间,但这极大地增加了时间复杂度.必须有一种方法在节点之间插入而不使用这种自定义方法,但我无法弄清楚如何.
这是我的新代码:
class Node(object):
def __init__(self, data):
self.data = data
self.nextNode = None
def __str__(self):
return str(self.data)
class LinkedList(object):
def __init__(self):
self.head = None
self.tail = None
def insert_in_between2(self, data, prev_data):
# instantiate the new node
new_node = Node(data)
# assign to head
thisval = self.head
# check each value in linked list against prev_data as long as value is not empty
prev_data2 = Node(prev_data)
while thisval is not None:
# if value is equal to …Run Code Online (Sandbox Code Playgroud) 所以我第一次尝试递归,在Python 3中编写一个简单的二进制搜索算法.运行我的程序后,我得到了这个错误:调用Python对象时超出了最大递归深度我做了一些研究,它说要添加这个线: sys.setrecursionlimit(40000)
我做了什么.当我输入不在我的列表中的数字时,我得到此分段错误错误.我读过这篇文章从我在Python中收集到的深度递归耗尽了内存?
我无法想象Python中不支持深度递归?无论如何,这是我的代码:
import sys
arr = [5, 17, 23, 33, 39, 44, 58, 62, 70, 74, 82, 99]
end = len(arr)
sys.setrecursionlimit(40000)
def binarySearch(arr, start, end, x):
#print("This is end: {}".format(end))
mid = int((end + start)/2)
#print("This is start {}".format(start))
#print("This is end {}".format(end))
#print("This is mid {}".format(mid))
if x == arr[mid]:
return x
elif (x < arr[mid]):
start = 0
end = mid - 1
return binarySearch(arr, start, end, x)
else: # if x …Run Code Online (Sandbox Code Playgroud)