小编Jim*_*Suh的帖子

Numpy 用负值重塑

我对 numpy 真的很陌生,目前对重塑中的负值感到困惑。

将 numpy 导入为 np

a=np.arange(6)
c=a.reshape(1,3,2)
d=a.reshape(-1,3,2)
e=a.reshape(-1,1,2)
print c
print
print d
print
print e
Run Code Online (Sandbox Code Playgroud)

它返回

[[[0 1]
  [2 3]
  [4 5]]]

[[[0 1]
  [2 3]
  [4 5]]]

[[[0 1]]

 [[2 3]]

 [[4 5]]]
Run Code Online (Sandbox Code Playgroud)

这里的问题是,当比较 c 和 d 时,根本没有区别。然而,在 e 中,每行之间形成了额外的空行。那么,-1 在 reshape 函数中究竟做了什么,为什么它会导致 e 中的每一行之间出现空行?谢谢 !

python numpy python-2.7

5
推荐指数
2
解决办法
3744
查看次数

为什么 cmp 指令中的参数顺序很重要?

我想知道为什么cmp指令需要一定的参数顺序条件。

例如,我已经尝试了这两种方法。

  1. cmpl %eax, $'A'
  2. cmpl $'A', %eax

第一行返回错误,表示操作数类型不匹配。第二行工作得很好。

我浏览了 Intel IA-32 手册,但它无法回答我的问题。它只是说参数 1 和参数 2 之间的减法,而不是每个参数应该具有的类型。

我想知道为什么第一行代码返回的操作数类型不匹配,而第二行却没有。

x86 assembly att

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

Undefined reference to 'esp'

链接目标文件时,我得到了对“ esp”的未定义引用。

我在名为mydc.s的文件中编写了汇编代码

然后我使用创建了目标文件

as --32 -march=i386 mydc.s -o mydc.o

(这里没有错误)然后将其与

gcc -m32 -march=i386 mydc.o -o mydc

然后它创建错误消息为

(.text + 0x2a):对'esp'的未定义引用

代码如下

    .section ".text"


    .globl  main
    .type   main,@function

main:

    pushl   %ebp
    movl    %esp, %ebp


input:

    pushl   $buffer 
    pushl   $scanfFormat
    call    scanf
    addl    $8, %esp

    ## check if user input EOF
    cmp $EOF, %eax
    je  quit

    pushl   $buffer
    call    isdigit
    addl    $4, esp
    cmp $1, %eax
    je  if_digit

    movl    buffer, %eax

    cmpl    $'p', %eax
    je  if_p

    cmpl    $'q', %eax
    je  if_q …
Run Code Online (Sandbox Code Playgroud)

x86 assembly gnu-assembler att

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

标签 统计

assembly ×2

att ×2

x86 ×2

gnu-assembler ×1

numpy ×1

python ×1

python-2.7 ×1