- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有以下代码试图规范化 m x n
数组的值(它将用作神经网络的输入,其中 m
是数字训练样例数,n
是特征数)。
但是,当我在脚本运行后检查解释器中的数组时,我发现这些值没有标准化;也就是说,它们仍然具有原始值。我猜这是因为函数内部对 array
变量的赋值只能在函数内部看到。
我怎样才能就地进行这种规范化?还是我必须从 normalize 函数返回一个新数组?
import numpy
def normalize(array, imin = -1, imax = 1):
"""I = Imin + (Imax-Imin)*(D-Dmin)/(Dmax-Dmin)"""
dmin = array.min()
dmax = array.max()
array = imin + (imax - imin)*(array - dmin)/(dmax - dmin)
print array[0]
def main():
array = numpy.loadtxt('test.csv', delimiter=',', skiprows=1)
for column in array.T:
normalize(column)
return array
if __name__ == "__main__":
a = main()
最佳答案
如果您想就地对 numpy 数组应用数学运算,您可以简单地使用标准的就地运算符 +=
、-=
、/=
等。例如:
>>> def foo(a):
... a += 10
...
>>> a = numpy.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> foo(a)
>>> a
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
这些操作的就地版本启动速度要快一点,尤其是对于较大的阵列:
>>> def normalize_inplace(array, imin=-1, imax=1):
... dmin = array.min()
... dmax = array.max()
... array -= dmin
... array *= imax - imin
... array /= dmax - dmin
... array += imin
...
>>> def normalize_copy(array, imin=-1, imax=1):
... dmin = array.min()
... dmax = array.max()
... return imin + (imax - imin) * (array - dmin) / (dmax - dmin)
...
>>> a = numpy.arange(10000, dtype='f')
>>> %timeit normalize_inplace(a)
10000 loops, best of 3: 144 us per loop
>>> %timeit normalize_copy(a)
10000 loops, best of 3: 146 us per loop
>>> a = numpy.arange(1000000, dtype='f')
>>> %timeit normalize_inplace(a)
100 loops, best of 3: 12.8 ms per loop
>>> %timeit normalize_copy(a)
100 loops, best of 3: 16.4 ms per loop
关于python - Numpy修改数组到位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10149416/
我需要获取 UInt16 和 UInt64 中的值作为 Byte[]。目前我正在使用 BitConverter.GetBytes,但这种方法每次都会给我一个新的数组实例。 我想使用一种允许我将这些值“
我一定是误解了 CSS 中的某些内容,因为我使用库 ( dat-gui ) 的下拉框正在这样做: 我已经尝试为 dat-gui 容器下面的 div 切换到 position: absolute,这会破
TOHtml 可用于将文件转换为 html,但它也会创建一个新文件。例如,如果原始文件名为 test,vim 将创建一个名为 test.html 的新文件。 有没有一种方法可以就地修改文件,即只将 t
你如何排序 IndexedSeq在斯卡拉的地方? API函数在哪里? 最佳答案 目前没有什么可以就地对它们进行排序。 如果您确实需要,可以转换 IndexedSeq到 Array[AnyRef]并使用
我正在尝试在字符串/对象类型的数据框中的 4 个特定列上用“”填充 NA。我可以在 fillna() 时将这些列分配给一个新变量,但是当我 fillna() inplace 时,基础数据不会改变。 a
我需要将我的测试结果放入一个 csv 文件中进行报告。在我的 python 测试代码中,当我没有值时,我的变量以 python 方式填充为 None。 有人要求我在报告工具的 CSV 文件中将这些替换
在我的网站上,我有一个元素位于上 Angular ,因此当他或她向下滚动时会跟随用户。就像this Fiddle .相反,我想做的是通过在用户滚动时保持不动然后加速回到其固定位置来使其具有更好的跟随效
有没有办法让 Webpack 将 #!/usr/bin/env Node 放在我的文件顶部? 我正在尝试将 CLI 与模块捆绑在一起...仅使用一个配置文件单独导出我的 index.js/cli.js
我想匹配 ArrayList 以便正确的 Burgare 获得正确的位置例如,Burgare6 获得位置 6,Burgare2 获得位置 2,依此类推。 public static void main
如何使用 boost::mpi 1.53 就地全部减少? (这是 CentOS 7 的版本) boost 1.61 有 boost::mpi::inplace_t ( doc ) 但 boost 1.
我有一些外国的 html 并且想用 css 表格来格式化它。不幸的是,html 在“tabular-row-divs”和“tabular-cell-divs”之间包含一个额外的 div。 例子:HTM
我有一张图片、一个标题、一段文字、一个日期和一个来源。我想将图像放在左侧,将来源和日期放在底部。如果文本太多,它们将位于图像下方,这很好。但如果太少。我希望日期和来源位于图像旁边的底部,如下所示:
我有这个程序: #include #include using namespace std; int main() { string inputfile = "input.pdf";
我是一名优秀的程序员,十分优秀!