小编Jan*_*ert的帖子

检查numpy数组中的类型

我有不同类型的数据.他们中的大多数是int,有时float.它的int大小不同,因此8/16/32位是大小.
对于这种情况,我正在创建一个数字型转换器.因此我通过使用检查类型isinstence().这是因为我读过的isinstance()内容不如说type().

关键是我得到的很多数据都是numpy数组.我使用spyder作为IDE,然后我看到变量也是一个类型.但是当我输入isinstance(var,'type i read')我的时候False.

我做了一些检查:

a = 2.17 
b = 3 
c = np.array(np.random.rand(2, 8))
d = np.array([1])
Run Code Online (Sandbox Code Playgroud)

因为isinstance(var,type)我得到:

isinstance(a, float)
True
isinstance(b, int)
True
isinstance(c, float)  # or isinstance(c, np.float64)
False
isinstance(d, int)  # or isinstance(c, np.int32)
False
Run Code Online (Sandbox Code Playgroud)

c并且d是真实的,当我问

isinstance(c, np.ndarray)
True
isinstance(d, np.ndarray)
True
Run Code Online (Sandbox Code Playgroud)

我可以与在步骤检查ndarray

isinstance(c[i][j], np.float64)
True
isinstance(d[i], np.int32)
True
Run Code Online (Sandbox Code Playgroud)

但这意味着,对于每个维度,我必须添加一个新索引,否则它将False再次出现.我可以检查有型有 …

numpy isinstance python-3.x

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

绘图中的Matplotlib索引错误

我基本上有以下脚本.但它在运行时遇到以下错误TypeError: 'Figure' object does not support indexing 就失败了axarr[0].plot(x,y).我试着搜索一下但发现了与创建子图有类似的错误...而且我只添加/替换数据(我不确定,因为它是matlab文件的副本,而我没有matlab).

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 2, 0.01)
for idx in range(1, 10):
    a = 1 + (idx - 1) / 10

    y = a ** x

    axarr, fig = plt.subplots(1,1)
    axarr[0].plot(x,y)
    axarr.axis([0, 4, 0, 85])
    axarr[0].grid(True)
    plt.show()
Run Code Online (Sandbox Code Playgroud)

可能我得到这个错误,因为我在一个循环中使用一个数字,但它看起来它在迭代1失败都准备好了.那么我错了什么或者什么可以更好以便这个工作(几乎等于matlab文件,请参阅下面的部分脚本)?
我希望有人可以提供帮助.

matlab文件相同的样本是这样的:

x = 0:0.01:4;
for idx = 1:10 
a = 1 + (idx-1)/10;

y = a.^x;
z = 2 * y
subplot(111)
plot(x,y)
hold …
Run Code Online (Sandbox Code Playgroud)

indexing matplotlib python-3.x

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

每行共享 y 轴

我有一个关于使用 matplotlib 的子图每行共享 y 轴的问题。我有以下脚本作为示例。sharey=True当我在子图函数中使用作为参数时,ax[x, x].set_ylim(n, n)然后它使用我使用的最后一个参数。

import matplotlib.pyplot as plt

fig, ax = plt.subplots(3, 2, figsize=(8, 10), sharey=True, gridspec_kw={'height_ratios': [1, 2, 2]})
ax[0, 0].set_ylim(-1.5, 1.5)
ax[1, 0].set_ylim(-40, 40)
ax[1, 1].set_ylim(-40, 40)
ax[2, 0].set_ylim(-40, 40)
ax[2, 1].set_ylim(-40, 40)
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以让我每行共享 y 轴?

python matplotlib python-3.x subplot

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

为现有数字添加新情节

我有一个带有一些图的脚本(参见示例代码).在其他一些事情之后,我想为现有的一个添加一个新的情节.但是,当我尝试它添加最后创建的数字(现在图2)的情节.我无法弄清楚如何改变......

import matplotlib.pylab as plt
import numpy as np

n = 10
x1 = np.arange(n)
y1 = np.arange(n)    

fig1 = plt.figure()
ax1 = fig1.add_subplot(111)
ax1.plot(x1,y1)
fig1.show()

x2 = np.arange(10)
y2 = n/x2

# add new data and create new figure
fig2 = plt.figure()
ax2 = fig2.add_subplot(111)
ax2.plot(x2,y2)
fig2.show()

# do something with data to compare with new data
y1_geq = y1 >= y2
y1_a = y1**2
ax1.plot(y1_geq.nonzero()[0],y1[y1_geq],'ro')
fig1.canvas.draw
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib

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

标签 统计

matplotlib ×3

python-3.x ×3

python ×2

indexing ×1

isinstance ×1

numpy ×1

plot ×1

subplot ×1