Python 从使用numpy数组的方法创建numpy数组
我有一个2D numpy数组作为基本sigmoid分类器的输入。 我希望分类器返回一个带有概率的数组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
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]
。您确实是正确的,这就解决了问题。非常感谢。如果你把它作为一个答案写下来,我会把它标记为正确的,这样它可能会帮助别人。