Python/Numpy压缩方法问题

2024-05-09 04:33:33 发布

您现在位置:Python中文网/ 问答频道 /正文

NumPy是使用Python进行科学计算的基本包。其中包括: 一个强大的N维数组对象 复杂的(广播)功能 C/C++与FORTRAN代码集成工具 有用的线性代数、傅立叶变换和随机数功能

我需要知道什么是压缩方法的效用和数字转换是如何完成的

from pylab import *
from time import time,sleep
import sys
import argparse
from math import *
import numpy as np
x = np.array([1,2,3,4,5,9,6,97987978978977987987897987987])
y=fromstring(x,'uint16')
time=compress(y&0x8000==1,y)
print(time)
print(x)

这个程序是怎么工作的


Tags: 工具对象方法代码fromimport功能numpy
1条回答
网友
1楼 · 发布于 2024-05-09 04:33:33

实际上,您正在调用numpy函数compress(我相信是从pylab的名称空间调用的)

这是一种索引函数,允许您返回数组的选定索引。查看文档中的示例,您将看到:

>>> a = np.array([[1, 2], [3, 4], [5, 6]])
>>> a
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> np.compress([0, 1], a, axis=0)
array([[3, 4]])

考虑到轴是0(行),返回值是第二行(我相信条件等价于[False, True]

在您的特定情况下,您似乎只在以下情况下给出了返回y的条件:

[32768     0     0     0 32768     0     0     0 32768     0     0     0
 32768     0     0     0 32768     0     0     0 32768     0     0     0
 32768     0     0     0     0     0     0     0]

==1,只有你才能知道意义(y&0x8000

编辑:使用您自己的示例,我将打印您的条件time,以及带有True值的新条件的时间:

import numpy as np
from pylab import *
x = np.array([1,2,3,4,5,9,6,97987978978977987987897987987])
y=fromstring(x,'uint16')
print('Your condition: ',y&0x8000==1)
time=compress(y&0x8000==1,y)
print('Your test: ',time)
time=compress(y&0x8000==0,y)
print('Test with True values in condition: ',time)

这将返回:

Your condition:  [False False False False False False False False False False False False
 False False False False False False False False False False False False
 False False False False False False False False]
Your test:  []
Test with True values in condition:  [7652    0    0 7652    0    0 7652    0    0 7652    0    0 7652    0    0
 7652    0    0 7652    0    0 8920 1114    0    0]

相关问题 更多 >

    热门问题