我想使用包含数组坐标的一个 SkyCoord
对象作为输入参数来制作二维等高线图。
为此,我想在参数上制作一个网格。
代码是这样的。
l = np.linspace(0, 360, 180)
b = np.linspace(-90, 90, 90) # Two axes I wanted to make contour on.
y=y.reshape(y.size,1,1) #(originally) an 1D array the same size as `coords`.
l=l.reshape(1,l.size,1)
b=b.reshape(1,1,b.size)
coords = coords.reshape(y.shape) # No, this does not work.
coords.shape = y.shape # You can't write attributes like this. How frustrating.
z = Something_Fun((l,b),y,coords)
问题来了。
我尝试使用np.meshgird
而不是coords
,但它返回{strong> np.array
SkyCoord
,而不是一个 { {1}}对象包含坐标数组,这不是我想要的。函数SkyCoord
调用Something_Fun
的成员函数,这当然不适用于SkyCoord
。
很遗憾,np.array
内置reshape
方法未提供 <{1}},即使确实有SkyCoord
方法!如果保持shape
的形状,代码将无法工作,因为操作无法使用不同维度的数组进行广播。
有没有优雅的方法来做到这一点?我不希望重写生成coords
或函数coords
的代码,因为它会搞砸许多其他内容。
将Something_Fun
数据导出到字符串并再次导入可能会起到作用,但是太“脏”并且会失去精确度。我可以尝试它作为最后的手段。
答案 0 :(得分:0)
好的,我自己想出了一个解决方案。它仍然涉及来回导出和导入,但它不会失去精度。它只是有效。
reshape
希望将来能提供内置的func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? {
let confirm = UITableViewRowAction(style: .Normal, title: "Confirm") { action, index in
//CODE
}
confirm.backgroundColor = UIColor.greenColor()
let delete = UITableViewRowAction(style: .Normal, title: "Delete") { action, index in
//code
}
delete.backgroundColor = UIColor.redColor()
return [delete,confirm]
}
func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
// the cells you would like the actions to appear needs to be editable
return true
}
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
// you need to implement this method too or you can't swipe to display the actions
}
方法,这样可以节省一些时间〜