Python 从使用numpy数组的方法创建numpy数组

Python 从使用numpy数组的方法创建numpy数组,python,numpy,numpy-ndarray,Python,Numpy,Numpy Ndarray,我有一个2D numpy数组作为基本sigmoid分类器的输入。 我希望分类器返回一个带有概率的数组 import numpy as np def sigmoid(x): sigm = 1 / (1 + np.exp(-x)) return sigm def p(D, w, b): prob=sigmoid(np.dot(D[:][7],w)+b) return prob 如何更改p(),使其返回一个1D numpy数组,概率按输入数据的顺序列出 Atm

我有一个2D numpy数组作为基本sigmoid分类器的输入。 我希望分类器返回一个带有概率的数组

import numpy as np


def sigmoid(x):
    sigm = 1 / (1 + np.exp(-x))
    return sigm


def p(D, w, b):
    prob=sigmoid(np.dot(D[:][7],w)+b)
    return prob
如何更改p(),使其返回一个1D numpy数组,概率按输入数据的顺序列出


Atm“prob”是一个长度为14的数组,但是输入数组“D”的大小超过400,因此逻辑中的某个地方存在错误。

编辑:问题是数组的切片不正确。必须使用
D[:,7]
而不是
D[:][7]
来提取列


也许是这样的:

import numpy as np


def sigmoid(x):
    sigm = 1 / (1 + np.exp(-x))
    return sigm


def p(D, w, b):
    prob=sigmoid(np.dot(D[:][7],w)+b)
    return np.ravel(prob)

prob已经是一个数组。np.ravel()不会改变任何东西。我将澄清这个问题。
[:]
是多余的。
D
w
b
的维度是什么?b是函数的偏差(int);w可以是numpy数组或int;D是一个矩阵(2D数组),但是目前只有第7列中的数据对函数很重要。我理解这一点,但是
D
400x14的尺寸就是一个例子吗?在这种情况下,将乘以一个长度为14的向量。要获得该列,您必须执行
d[:,7]
。您确实是正确的,这就解决了问题。非常感谢。如果你把它作为一个答案写下来,我会把它标记为正确的,这样它可能会帮助别人。