我必须numpy.ndarray使用int,float或复数创建一个类似于数组的数据.
我希望用numpy.asarray功能做到这一点.
我不想给它一个严格的dtype说法,因为我要复杂的值转换为complex64或complex128,彩车float32或float64等
但是,如果我只是简单地运行numpy.ndarray(some_unknown_data)并查看其结果的dtype,我怎么能理解,数据是数字,而不是对象或字符串或其他什么?
我有一个Python程序,它将把文本文件作为输入.但是,其中一些文件可能是gzip压缩的.
是否存在跨平台,可以从Python方式使用以确定文件是否压缩为gzip?
以下是可靠的还是一个普通的文本文件'不小心'看起来像gzip一样足以让我得到误报?
try:
gzip.GzipFile(filename, 'r')
# compressed
# ...
except:
# not compressed
# ...
Run Code Online (Sandbox Code Playgroud) 我是一名工程专业的学生,目前正在从MATLAB过渡到Python,用于数值模拟.我的印象是,对于基本的数组操作,Numpy会和MATLAB一样快.但是,对于我写的两个不同的程序来说,MATLAB的速度是Numpy的两倍.我用于Numpy(Python 3.3)的测试代码是:
import numpy as np
import time
a = np.random.rand(5000,5000,3)
tic = time.time()
a[:,:,0] = a[:,:,1]
a[:,:,2] = a[:,:,0]
a[:,:,1] = a[:,:,2]
toc = time.time() - tic
print(toc)
Run Code Online (Sandbox Code Playgroud)
鉴于我正在使用的MATLAB 2012a:
a = rand(5000,5000,3);
tic;
a(:,:,1) = a(:,:,2);
a(:,:,3) = a(:,:,1);
a(:,:,2) = a(:,:,3);
toc
Run Code Online (Sandbox Code Playgroud)
我使用的算法是在NASA 网站上使用的比较Numpy和MATLAB的算法.该网站显示Numpy在该算法的速度方面超过了MATLAB.然而,我的结果显示Numpy的模拟时间为0.49秒,MATLAB的模拟时间为0.29秒.我也在Numpy和Matlab上都运行了Gauss-Seidel解算器,我得到了类似的结果(16.5 s vs 9.5 s)
我是Python的新手,并且在编程方面不是非常有文化.我正在使用WinPython 64位Python发行版,但也试过Pythonxy无济于事.
我读过一篇应该提高性能的方法是使用MKL构建Numpy.不幸的是我不知道如何在Windows上执行此操作.我甚至需要这样做吗?
有什么建议?
假设我有以下时间序列:
Timestamp Category
2014-10-16 15:05:17 Facebook
2014-10-16 14:56:37 Vimeo
2014-10-16 14:25:16 Facebook
2014-10-16 14:15:32 Facebook
2014-10-16 13:41:01 Facebook
2014-10-16 12:50:30 Orkut
2014-10-16 12:28:54 Facebook
2014-10-16 12:26:56 Facebook
2014-10-16 12:25:12 Facebook
...
2014-10-08 15:52:49 Youtube
2014-10-08 15:04:50 Youtube
2014-10-08 15:03:48 Vimeo
2014-10-08 15:02:27 Youtube
2014-10-08 15:01:56 DailyMotion
2014-10-08 13:27:28 Facebook
2014-10-08 13:01:08 Vimeo
2014-10-08 12:52:06 Facebook
2014-10-08 12:43:27 Facebook
Name: summary, Length: 600
Run Code Online (Sandbox Code Playgroud)
我想计算每周和每年的每个类别(时间序列中的唯一值/因子).
Example:
Week/Year Category Count
1/2014 Facebook 12
1/2014 Google 5
1/2014 Youtube 2
...
2/2014 Facebook 2 …Run Code Online (Sandbox Code Playgroud) j在NumPy中,Octave的等价物是什么?我如何j在Python中使用?
在Octave:
octave:1> j
ans = 0 + 1i
octave:1> j*pi/4
ans = 0.00000 + 0.78540i
Run Code Online (Sandbox Code Playgroud)
但是在Python中:
>>> import numpy as np
>>> np.imag
<function imag at 0x2368140>
>>> np.imag(3)
array(0)
>>> np.imag(3,2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: imag() takes exactly 1 argument (2 given)
>>> np.imag(32)
array(0)
>>>
>>> 0+np.imag(1)
1
Run Code Online (Sandbox Code Playgroud) import numpy as np
a = np.array([0])
b = np.array([None])
c = np.array([''])
d = np.array([' '])
Run Code Online (Sandbox Code Playgroud)
为什么我们应该有这种不一致性:
>>> bool(a)
False
>>> bool(b)
False
>>> bool(c)
True
>>> bool(d)
False
Run Code Online (Sandbox Code Playgroud) 我想分别沿轴0和轴1重复数组的元素M和N次:
import numpy as np
a = np.arange(12).reshape(3, 4)
b = a.repeat(2, 0).repeat(2, 1)
print(b)
[[ 0 0 1 1 2 2 3 3]
[ 0 0 1 1 2 2 3 3]
[ 4 4 5 5 6 6 7 7]
[ 4 4 5 5 6 6 7 7]
[ 8 8 9 9 10 10 11 11]
[ 8 8 9 9 10 10 11 11]]
Run Code Online (Sandbox Code Playgroud)
这有效,但我想知道是否有更好的方法而无需创建临时数组.
我是Numpy的新手并试图搜索一个函数来列出变量及其大小(矩阵维度和内存使用情况).
我基本上在寻找MATLAB和Octave中"whos"命令的等价物.在NumPy中是否存在任何此类命令?
import numpy as np
data = np.arange(-50,50,10)
print data
[-50 -40 -30 -20 -10 0 10 20 30 40]
Run Code Online (Sandbox Code Playgroud)
我想重复数据的每个元素5次,并按如下方式创建新数组:
ans = [-50 -50 -50 -50 -50 -40 -40 ... 40]
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
怎么样重复整个阵列5次?
ans = [-50 -40 -30 -20 -10 0 10 20 30 40 -50 -40 -30 -20 -10 0 10 20 30 40 -50 -40 -30 -20 -10 0 10 20 30 40 -50 -40 -30 -20 -10 0 10 20 30 40 -50 -40 -30 -20 -10 …Run Code Online (Sandbox Code Playgroud) 我有两个用户定义的对象,比如说a和b.
这两个对象都具有相同的hash值.
然而,id(a)并且id(b)是不平等的.
此外,
>>> a is b
False
>>> a == b
True
Run Code Online (Sandbox Code Playgroud)
从这个观察中,我可以推断出以下情况吗?
hash值. id值. obj1 is obj2调用,id都会比较两个对象的值,而不是它们的hash值.python ×9
numpy ×7
arrays ×3
matlab ×2
types ×2
compression ×1
count ×1
dataframe ×1
datetime ×1
equality ×1
gzip ×1
hash ×1
intel-mkl ×1
octave ×1
pandas ×1
performance ×1
repeat ×1
time-series ×1
truthiness ×1