小编wol*_*gel的帖子

使用 OneHotEncoder 出现错误“预期的二维数组,而是得到一维数组”

我是机器学习的新手,正在尝试解决我在使用 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)

python machine-learning python-3.x scikit-learn

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

如何在链接列表中的另一个节点之间插入节点?

我正在重新审视我前一段时间发布的问题: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 linked-list python-3.x singly-linked-list

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

运行递归二进制搜索算法时的分段错误

所以我第一次尝试递归,在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)

python recursion binary-search python-3.x

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