说我有一个矩阵:
from numpy import *
a = zeros(shape=(nRows,nColumns));
Run Code Online (Sandbox Code Playgroud)
当我尝试这样做时,我想用第一列填写:
a[:][0] = ones(shape=(nRows,1))
Run Code Online (Sandbox Code Playgroud)
我明白了:
ValueError: output operand requires a reduction, but reduction is not enabled
Run Code Online (Sandbox Code Playgroud)
为什么不起作用?
当我遇到意想不到的问题时,我正在用Python做一些工作.我有一个类,两个变量x和y.x和y意味着是类的独立副本,每个副本都有自己的数据.所以我设置x等于类并给它一些值,然后用y做同样的事.一旦我尝试使用该数据,我意识到我覆盖了x的值.似乎我没有创建两个单独的类副本来使用,而是两个引用同一个类.所以这是代码中的一般示例:
x = someClass()
x.set(2, 0)
y = someClass()
y.set(3, 0)
print(x)
Run Code Online (Sandbox Code Playgroud)
最终结果是打印3而不是2.我想创建一个单独的"版本"类来保存每个变量的不同数据.不确定如何.使用Python 3.3.这是该类的代码:
class someClass:
def __init__(self, list = [0,0,0,0,0,0,0,0,0,0]):
self.list = list
def __repr__(self):
return str(self.list)
def set(self, loc, val):
if ((loc >= 0) & (loc <= 9)):
self.list[loc] = val
Run Code Online (Sandbox Code Playgroud) 我在CSV文件中有基于列的数据,我想以多种方式操作它.人们已经将我指向R,因为它可以让您轻松访问行和列,但我已经熟悉python而非使用它.
例如,我希望能够删除其中一列中具有特定值的所有行.或者我想更改一列的所有值(即修剪字符串).我还希望能够基于公共值聚合行(如SQL GROUP BY).
有没有办法在python中执行此操作而无需每次都编写循环迭代所有行?
这是我正在制作的游戏.不过我自己也看不到问题.
这是错误和两个.py文件:
C:\Users\Rickard\My Programs\Python\slutarbete\New try>main.py
Traceback (most recent call last):
File "C:\Users\Rickard\My Programs\Python\slutarbete\New try\main.py", line 6,
in <module>
from rabbits import Rabbit
File "C:\Users\Rickard\My Programs\Python\slutarbete\New try\rabbits.py", line
3, in <module>
import main
File "C:\Users\Rickard\My Programs\Python\slutarbete\New try\main.py", line 6,
in <module>
from rabbits import Rabbit
ImportError: cannot import name Rabbit
Run Code Online (Sandbox Code Playgroud)
main.py
# -*- coding: utf-8 -*-
import pygame, sys, random, math
from rabbits import Rabbit
from pigs import Pig
from boars import Boar
from pygame.locals import *
from threading import Timer …Run Code Online (Sandbox Code Playgroud) 我有多个类都继承自单个基类,这是一个简单的例子:
class DataSource(object):
pass
class TableDataSource(DataSource):
pass
Run Code Online (Sandbox Code Playgroud)
如果我想确定这些类是否属于DataSource类型,我想我可以执行以下操作:
>>> tdl = TableDataSource()
>>> print tdl is DataSource
False
Run Code Online (Sandbox Code Playgroud)
所以我在这里回到假,如何检查从DataSource继承的所有类是否都是数据源类型对象,而不必专门检查每个类类型?这样可以更轻松地检查对象类型,以便进行其他功能.
谢谢.
我有一个包含许多列的FITS文件.该文件的简化示例的一部分如下所示:
A B C
100 1 90
100 2 90
100 3 90
100 4 90
211 40 70
211 41 70
211 42 70
211 43 70
211 44 70
Run Code Online (Sandbox Code Playgroud)
如果您注意到这里,A列和C列的前四行是相同的,但B列的变化范围是1到4.然后A列和C列的下5个值相同,但B列的变化范围是40到44.
我想做的是,写一个程序,创建一个这样的文件:
A B C
100 4 90
211 5 70
Run Code Online (Sandbox Code Playgroud)
也就是说,B列应包含A列和C列相同的值的数量!
我想知道在Python中如何做到这一点.它不一定需要处理FITS文件,如果有一些例程无法在FITS文件中使用,我也可以将其转换为ASCII格式.
到目前为止我尝试了什么:
我遇到了一个被调用的例程Collections,它有一个子例程,它调用Counter列表中相等的值并返回它们.
我试过了:
import collections
counter = collections.Counter(a)
counts = counter.values()
Run Code Online (Sandbox Code Playgroud)
但这只能给我A列中相同的值.有人能告诉我如何使用这个例程将这些值与C列进行比较吗?
这也许是一个微优化,但是我想检查给定字节的流在通过我的应用程序时是否是有效的UTF-8,但是我不想保留结果解码后的代码点。换句话说,如果我要调用large_string.decode('utf-8'),假设编码成功,则我不希望保留通过解码返回的unicode字符串,并且希望不浪费内存。
我可以通过多种方式来执行此操作,例如一次读取几个字节,尝试读取decode(),然后追加更多字节直到decode()成功(否则,我已经用完了编码中单个字符的最大字节数)。但是,在ISTM中,应该有可能以一种简单的方式丢弃现有的Unicode字符,而不必自己动手使用现有的解码器。但是搜索stdlib文档没有立即想到的事情。
从astropy.table遍历Table对象的行的最聪明方法是什么?
是这样的吗?
for row in table:
....
Run Code Online (Sandbox Code Playgroud)
?