小编Kie*_*unt的帖子

在numpy.eye上使用numpy.identity有什么好处?

说完看了看man页面numpyeyeidentity,我认为identity是一个特例eye,因为它具有较小的选项(例如eye可以填写转移对角线,identity不能),但可以振振有词地更快速地运行.但是,对于小型或大型阵列,情况并非如此:

>>> np.identity(3)                                                  
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])
>>> np.eye(3)                                                       
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])
>>> timeit.timeit("import numpy; numpy.identity(3)", number = 10000)
0.05699801445007324
>>> timeit.timeit("import numpy; numpy.eye(3)", number = 10000)     
0.03787708282470703
>>> timeit.timeit("import numpy", number = 10000)                   
0.00960087776184082
>>> timeit.timeit("import numpy; numpy.identity(1000)", number = 10000)
11.379066944122314
>>> timeit.timeit("import numpy; numpy.eye(1000)", number = …
Run Code Online (Sandbox Code Playgroud)

python arrays performance numpy

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

如何在numpy数组中解析模式?

请原谅这个奇怪的标题,我真的不能想到一个合适的措辞.

说我有一个像这样的数组:

arr = [[0 1 1 1 1 1 1 1 0],
       [0 0 1 1 1 1 1 0 0],
       [0 0 0 1 1 1 0 0 0],
       [0 0 0 0 1 0 0 0 0],
       [0 0 0 0 0 0 0 0 0]]
Run Code Online (Sandbox Code Playgroud)

我正在寻找"蚀刻" 1触摸0s的s,这将导致:

arr = [[0 0 1 1 1 1 1 0 0],
       [0 0 0 1 1 1 0 0 0],
       [0 0 0 0 1 0 …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

18
推荐指数
2
解决办法
560
查看次数

使用弯曲(路径跟踪)向量在python中进行流动可视化

我想在python中绘制带有弯曲箭头的矢量场,可以在vfplot(见下文)或IDL中完成.

Boussinesq流动与弯曲的向量

您可以在matplotlib中接近,但使用quiver()限制直线向量(见左下图),streamplot()但似乎不允许对箭头长度或箭头位置(见右下方)进行有意义的控制,即使在更改integration_directiondensity,和maxlength.

示例matplotlib箭头和流图

那么,有没有可以做到这一点的python库?或者有没有办法让matplotlib做到这一点?

python data-visualization matplotlib vector-graphics

15
推荐指数
3
解决办法
1305
查看次数

如何阻止python RuntimeWarning从打印到终端?

我有一些python代码,在某些时候,采用轴的方式是一个合理稀疏的数组与nans in.每次我运行代码它引发一个RuntimeWarning.

我知道是什么导致了警告,这是故意的,并且它不会影响输出.然而,每次运行程序时都会发出警告是非常恼人的 - 那么,是否有一种廉价且令人讨厌的方法来防止它们被打印到终端?

python warnings suppress-warnings

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

如何从包含日期时间对象的数组进行插值?

我正在寻找一个类似于np.interp可以处理datetime对象的功能.

例如:

import datetime, numpy as np
arr1 = np.array([datetime.datetime(2008,1,d) for d in range(1,10)])
arr2 = np.arange(1,10)

np.interp(datetime.datetime(2008,1,5,12),arr1,arr2)
Run Code Online (Sandbox Code Playgroud)

理想情况下会回归5.5,但numpy会加注TypeError: array cannot be safely cast to required type.这周围有一种不错的pythonic方式吗?

python arrays datetime numpy

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

在matplotlib中旋转colorbar tick标签

我想旋转颜色条刻度标签,使它们垂直读取而不是水平读取.我已经尝试了许多变化,我能想到的与cbar.ax.set_xticklabelscbar.ax.ticklabel_format等上rotation='vertical'但还没有完全落地呢.

我在下面提供了一个MWE:

import numpy as np
import matplotlib.pyplot as plt

#example function
x,y = np.meshgrid(np.linspace(-10,10,200),np.linspace(-10,10,200))
z = x*y*np.exp(-(x+y)**2)

#array for contourf levels
clevs = np.linspace(z.min(),z.max(),50)

#array for colorbar tick labels
clevs1 =np.arange(-200,100,10)

cs1 = plt.contourf(x,y,z,clevs)

cbar = plt.colorbar(cs1, orientation="horizontal")
cbar.set_ticks(clevs1[::1])

plt.show()
Run Code Online (Sandbox Code Playgroud)

示例图像

任何指针都将非常感激 - 我相信这一定非常简单......

python numpy matplotlib colorbar

4
推荐指数
3
解决办法
7463
查看次数

将数组舍入到另一个数组中给出的值

说我有一个数组:

values = np.array([1.1,2.2,3.3,4.4,2.1,8.4])
Run Code Online (Sandbox Code Playgroud)

我想将这些值舍入到任意数组的成员,比如说:

rounds = np.array([1.,3.5,5.1,6.7,9.2])
Run Code Online (Sandbox Code Playgroud)

理想情况下返回一个圆形数字数组和一个残差数组:

rounded = np.array([1.,1.,3.5,5.1,1.,9.2])
residues = np.array([-0.1,-1.2,0.2,0.7,-1.1,0.6])
Run Code Online (Sandbox Code Playgroud)

有这样一个好的pythonic方式吗?

python arrays numpy rounding

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

什么是python中的开放元组?

我知道语法tup = ("x",)允许Python识别它tup是一个元组而不是一个字符串,但是a = (2,3,)和之间有什么区别b = (2,3)吗?

这种转让产生:

>>> a == b
True
Run Code Online (Sandbox Code Playgroud)

python tuples variable-assignment

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

如何在 matplotlib 中并排绘制堆叠直方图?

我希望在 matplotlib 中绘制两个并排堆叠的直方图(类似于下面的示例图像)。我尝试过几种变体

bins = np.arange(10)
a1,b1,c1 =plt.hist([arr1,arr2,arr3],bins,stacked=True)
a2,b2,c2 =plt.hist([arr4,arr5,arr6],bins,stacked=True)
Run Code Online (Sandbox Code Playgroud)

但似乎无法避免让第二个图直接覆盖第一个图。关于如何解决这个问题有什么想法吗?

并排堆叠直方图示例

python plot matplotlib histogram

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

在分配字典中的值时,在Python中导致这种奇怪结果的原因是什么?

我最近将某些代码中的错误减少为以下行为的结果:

>>> arr = np.zeros(10)
>>> value = 0
>>> dictionary = {"key":[arr,value]}
>>> dictionary["key"][0]
array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])
>>> dictionary["key"][1]
0
>>> dictionary["key"][0]+=1
>>> dictionary["key"][1]+=1
>>> dictionary["key"][0]   
array([ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.])
>>> dictionary["key"][1]   
1
>>> arr
array([ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.])
>>> value
0
Run Code Online (Sandbox Code Playgroud)

导致:

>>> dictionary["key"][0] is arr
True
>>> dictionary["key"][1] is value 
False
Run Code Online (Sandbox Code Playgroud)

可能是一个愚蠢的问题,但是是什么导致了这个?

python dictionary numpy variable-assignment

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