我现在已经多次读过蒙面数组文档,到处搜索并感到非常愚蠢.我无法弄清楚我的生活如何将面具从一个阵列应用到另一个阵列.
例:
import numpy as np
y = np.array([2,1,5,2]) # y axis
x = np.array([1,2,3,4]) # x axis
m = np.ma.masked_where(y>2, y) # filter out values larger than 5
print m
[2 1 -- 2]
print np.ma.compressed(m)
[2 1 2]
Run Code Online (Sandbox Code Playgroud)
所以这很好....但要绘制这个y轴,我需要一个匹配的x轴.如何将y数组中的掩码应用于x数组?这样的事情会有意义,但会产生垃圾:
new_x = x[m.mask].copy()
new_x
array([5])
Run Code Online (Sandbox Code Playgroud)
那么,究竟是怎么做的(注意新的x数组需要是一个新的数组).
编辑:
好吧,似乎有一种方法可以做到这一点:
>>> import numpy as np
>>> x = np.array([1,2,3,4])
>>> y = np.array([2,1,5,2])
>>> m = np.ma.masked_where(y>2, y)
>>> new_x = np.ma.masked_array(x, m.mask)
>>> print np.ma.compressed(new_x)
[1 2 4]
Run Code Online (Sandbox Code Playgroud)
但那令人难以置信的凌乱!我正在努力寻找像IDL一样优雅的解决方案......
在第四代Apple TV上,您可以选择自定义的json文件URL来加载除苹果之外的屏幕保护程序电影.为此,你必须进入设置,移动到约,在开启时,单击播放/暂停4次.这进入商店/频道模式,允许在选择频道模式时通过描述下载URL的中间JSON文件指定从哪里获取电影的URL.这对我有一次工作,我的一部电影下载了.但是从那时起我改变了网址,Apple TV几天没有下载任何新电影.
我有1080p版本(每部电影约600MB)和720p版本(每部电影约70MB).我的JSON文件版本位于:http://wx.inside.net/sat/ss.json,你可以在这里将它与Apple自己的版本进行比较:http://a1.phobos.apple.com/us/ r1000/000/Features/atv/AutumnResources/videos/entries.json,我觉得我的语法还行.
Apple TV一直处于永久性状态,因此可以有足够的时间下载新电影,并且电影已经可用(并且可以使用JSON文件中的URL在iPad或MBP上播放.
问题: - 有没有办法从Apple TV获得一些关于它是否已获取最新JSON文件的反馈? - 可以删除本地存储/缓存的电影以强制下载新电影吗? - 它将播放哪些电影文件有任何尺寸/质量限制吗? - 我可以以某种方式强制Apple TV重新加载屏保URL吗?
更新:我收到了有关发布非工作代码的合理批评.我已经把它牢记在心,我正在用一个完整的工作示例来更新这篇文章.我也相应地更新了描述:
我有一个非常简单的java swing GUI,它的组件占用了最大Y范围组件所使用的等量垂直(Y)空间,但完全不必要.我试图使用preferredSize提示缩小那些不需要那么多垂直空间的组件,但无济于事.
基本布局很简单:有一个主窗口和三个垂直面板.布局是一个简单的GridLayout(我宁愿保持这种方式,除非有人告诉我我需要用GridLayout做不到的事).所有三个面板似乎占据相同数量的垂直空间,即使在滑块的情况下,这也是大量浪费空间.如何让每个子窗格只使用每个需要的空间?即我希望两个滑块窗口只有滑块和它们的描述一样高.
代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class test {
public static void main(String[] arg) {
JFrame mainWindow = new JFrame();
JSlider slider1 = new JSlider(0,100,50);
JSlider slider2 = new JSlider(0,100,50);
JPanel pnlSlider1 = new JPanel();
pnlSlider1.setLayout(new GridLayout(1,1)); // 1 row, 1 column
pnlSlider1.add(new JLabel("Description for slider1"));
pnlSlider1.add(slider1);
JPanel pnlSlider2 = new JPanel();
pnlSlider2.setLayout(new GridLayout(1,1)); // 1 row, 1 column
pnlSlider2.add(new JLabel("Description for slider2"));
pnlSlider2.add(slider2);
// label should now be to the left of slider …Run Code Online (Sandbox Code Playgroud) C中的位移操作符没有按照我的预期运行,这无疑是我的误解,但有人可以解释发生了什么吗?
unsigned char in = 155;
unsigned char res;
res = (in << 6) >> 7;
Run Code Online (Sandbox Code Playgroud)
应该是一样的
res = in << 6;
res = res >> 7; // can also use res >>= 7;
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.
第一个结果是:
in = 10011011
res = 01001101
Run Code Online (Sandbox Code Playgroud)
第二个(如预期的那样):
in = 10011011
res = 00000001
Run Code Online (Sandbox Code Playgroud)
所以看起来在第一个例子中,它操作原始数据的每个班次,而不是操作第一个班次,然后在第一个结果上操作第二个班次.想法?
这里有些混乱:我想通过在风速风(y轴)的预测时间t(x轴)绘制一系列箭头,并绘制指向风吹动方向的箭头来绘制风的预测。箭头的尺寸应为绘图高度的给定分数,例如,任意确定为绘图高度的1/15。由于该图自动缩放为风列表中的最大风速,因此可以得出:
arrowlength = np.max(wind) / 15.0
Run Code Online (Sandbox Code Playgroud)
这将产生以Y图为单位的箭头长度。问题似乎是X单元在绘制时不兼容,因为我使用的是日期时间。所以matplotlib获取其短裤的扭曲,当我这样做(这是应该工作的代码,如果 x轴不是日期时间):
for x,u,v,y in zip(t, windu, windv, wind):
xcomp = arrowlength * sin(u/v)
ycomp = arrowlength * cos(u/v)
arr = Arrow(x-xcomp/2, y-ycomp/2, x+xcomp/2, y+ycomp/2, edgecolor='black')
ax.add_patch(arr)
arr.set_facecolor('b')
Run Code Online (Sandbox Code Playgroud)
当然,这是将日期时间t(分别为循环中的x)传递给Arrow函数的槽。
我想很多时候都是这样,这是一个非常笼统的问题:如何将一条线和其他注解放置到在X和Y中没有相同单位的坐标网格中?
我需要将每个\n替换成一行"\n(双引号后跟换行符).
这应该工作.但它没有任何作用.报告也没有错误.有人提出任何线索吗?
sed -i 's/\n/\"\n/' filename
Run Code Online (Sandbox Code Playgroud)
之前,该文件包含:
line 1
line 2
Run Code Online (Sandbox Code Playgroud)
之后,它包含完全相同的.
谢谢
我有这个非常简单的问题:我需要为列表b中的每个索引将列表a中的值设置为1:
>>> a=[0, 0, 0, 0]
>>> b=[1, 3]
Run Code Online (Sandbox Code Playgroud)
那么期望的结果是:
[0, 1, 0, 1]
Run Code Online (Sandbox Code Playgroud)
优雅的解决方案,如果python值得它的盐,当然是这样的:
>>> a[b]=1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not list
Run Code Online (Sandbox Code Playgroud)
但当然这不起作用......所以我尝试了以下列表推导,但它们都产生了相同的错误,就好像理解是导致它(在for上):
首先是我真正希望工作的简单版本:
>>> a[x for x in b] = 1
File "<stdin>", line 1
a[x for x in b] = 1
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
然后是稍微复杂的版本:
>>> a[b[x] for x in range(0,len(b))] = 1
File "<stdin>", line 1
a[b[x] for x in range(0,len(b))] = …Run Code Online (Sandbox Code Playgroud)