小编use*_*346的帖子

了解argmax

假设我有矩阵

import numpy as np    
A = np.matrix([[1,2,3,33],[4,5,6,66],[7,8,9,99]])
Run Code Online (Sandbox Code Playgroud)

我试图理解函数argmax,据我所知它返回最大值

如果我在Python上尝试过:

np.argmax(A[1:,2])
Run Code Online (Sandbox Code Playgroud)

我应该获得第二行中的最大元素,直到行的末尾(第三行)和第三列?所以它应该是数组[6 9],而arg max应该返回9?但是为什么当我在Python上运行它时,它返回值1?

如果我想在第3列(即9)中从第2行开始返回最大元素,我该如何修改代码?

我已经检查了Python文档,但仍然有点不清楚.感谢您的帮助和解释.

python

14
推荐指数
3
解决办法
3万
查看次数

如何为Fibonacci编写寄存器机器代码

我不确定这是否是提出这个问题的正确位置,但由于它涉及编程和代码,希望这是正确的地方.

我曾尝试在程序员和计算机科学SE上发帖,但他们将我重定向到了这个网站.

问题是如何编写计算Fibonacci数的寄存器机器代码/程序.代码的语法实际上非常简单.

(以下仅供参考,对于长篇文章感到遗憾)
(有关更多说明,请参阅正式逻辑书:Richard Carl Jeffrey的范围和限制)

根据维基百科,注册机是一种类似于图灵机的抽象机的通用类.(处理器)寄存器是可用作CPU或其他数字处理器的一部分的少量存储器.

我们可以通过将寄存器建模为空桶来简化问题,我们可以将大理石或岩石放入寄存器("桶").规则是从存储桶中添加或移除弹珠以执行计算.

规则如下:
1.登记机器使用有限数量的桶和无穷无尽的大理石供应.
2.每个桶都可以单独识别.大理石无需区分.
3.寄存器机器程序是一组有限的指令:
- 将大理石添加到桶中(然后继续下一条指令).
- 或者从桶中取出大理石(如果可以的话,继续下一个指令,如果不能,则继续下一个指令).
4.程序可以用流程图或指令列表编写.

以下是执行添加的注册机程序的示例.
让A,B,C成为桶.
1.(-B; 2,4)表示从桶B中取出一个大理石,如果可以,则转到指令2,如果不能,则转到4个
.(+ A; 3)表示将一个大理石添加到桶A中,然后转到指令3 3
.(+ C; 1)表示将一个大理石添加到桶C中,然后转到指令1
4.(-C; 5, - )表示从桶C中取出一个大理石,如果可以,则转到指令2,或退出如果不能
5.(+ B; 4)意味着将一个大理石添加到桶B,然后转到指令4

很容易证明,假设我们在桶A中有3个弹珠,在桶B中有2个弹珠,在桶C中有4个弹珠.执行此算法后,将有| A | + | B |.= 3 + 2 =桶A中的5个弹珠和| B | + | C | 在桶B中= 2 + 4 = 6个弹珠

(我希望上面的例子足够清楚,仅用于说明目的)

(现在问题来了)

现在,我想编写一个寄存器机器代码,当在存储桶A中输入n时,返回(也在存储桶A中)第n个斐波纳契数.Fibonacci数字是0(第0),1(第1),1 = 0 + 1(第2)等.我们可以使用任意数量的桶,目标是尽可能简单地编写代码(即最少的指示).给定F(0)= 0且F(1)= 1,斐波纳契递归关系为F(n)= F(n-1)+ F(n-2).

这是我的尝试和代码:
我的想法是使用桶A作为输入,最后作为输出F(n)(因为问题需要桶A中的输出),桶B作为"计数器",桶C作为F (n-1)和桶D为F(n-2).
1.(+ C; 2)
2.( - A; 3,4) …

algorithm

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

用于生成主对角线上方1的对角矩阵的Python代码

我想编写一个python函数,它生成一个大小为n乘以n的零矩阵,对于主对角线上方的所有元素都有1.

这是我的代码:

def funtest(n):
    for i in range(0,n-2):
        s = (n,n)
        Y = zeros(s)
        Z = Y
        Z[i,i+1]=1          
return Z
Run Code Online (Sandbox Code Playgroud)

但结果只在矩阵的(n-1,n-2)元素中给出1.

我被卡住了,我真的认为我的代码是正确的,并且不知道错误在哪里.我该如何解决?有人可以帮忙吗?

谢谢.

python numpy

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

在 Python 中生成 100 个正态分布的随机数

我是 Python 的极端初学者,我很难编写非常简单的代码。

我正在尝试编写一个简单的代码,通过使用期望为 1.0 和标准差为 0.005 的函数 gauss 来生成 100 个正态分布数,然后存储在一个数组中,该数组可用于计算这 100 个样本的均值和标准差。

这是我的代码:

def uniformrandom(n):   
    i=0  
    while i< n:  
        gauss(1.0, 0.005)  
        i = i + 1
    return i
Run Code Online (Sandbox Code Playgroud)

然后我试过了

L = uniformrandom(100)
Run Code Online (Sandbox Code Playgroud)

代码应该在 Python 中缩进,但只是当我在 StackOverflow 中输入时,我才真正知道如何缩进它。

假设我使用公式 (x1+x2+...+xn)/100 来获得平均值,我如何存储这些数字并使用公式来获得平均值。

我在 Python 中尝试了代码,但 L 只打印值 n。我的代码有什么问题,我应该如何修复它。

如果有人可以提供一些帮助,将不胜感激。非常感谢!

python random loops random-sample

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

标签 统计

python ×3

algorithm ×1

loops ×1

numpy ×1

random ×1

random-sample ×1