我正在尝试创建一个包含2 708 000 000个元素的矩阵.当我尝试创建这个大小的numpy数组时,它给了我一个值错误.有什么办法可以增加最大阵列大小吗?
ValueError Traceback(最近一次调用最后一次)
ValueError:超出允许的最大大小
我正在创建一个包含3个子图的图形,并且想知道是否有任何方法可以移除它们周围的框架,同时保持轴的位置?
我正在尝试合并三个词典,它们都具有相同的键,以及值列表或单个值.
one={'a': [1, 2], 'c': [5, 6], 'b': [3, 4]}
two={'a': [2.4, 3.4], 'c': [5.6, 7.6], 'b': [3.5, 4.5]}
three={'a': 1.2, 'c': 3.4, 'b': 2.3}
Run Code Online (Sandbox Code Playgroud)
我需要的是将值中的所有项添加到一个列表中.
result={'a': [1, 2, 2.4, 3.4, 1.2], 'c': [5, 6, 5.6, 7.6, 2.3], 'b': [3, 4, 3.5, 4.5, 3.4]}
Run Code Online (Sandbox Code Playgroud)
我尝试了几件事,但大多数都将值放入嵌套列表中.例如
out=dict((k, [one[k], two.get(k), three.get(k)]) for k in one)
{'a': [[1, 2], [2.4, 3.4], 1.2], 'c': [[5, 6], [5.6, 7.6], 3.4], 'b': [[3, 4], [3.5, 4.5], 2.3]}
Run Code Online (Sandbox Code Playgroud)
我尝试通过循环遍历值来更新它:
out.update((k, [x for x in v]) for k,v …Run Code Online (Sandbox Code Playgroud) 我遇到了一个非常奇怪的问题.我正在尝试在集合模块中使用Counter函数.但是,我一直收到相同的错误消息
AttributeError: 'module' object has no attribute 'Counter'
Run Code Online (Sandbox Code Playgroud)
我之前尝试过使用它并且工作正常,但是现在出于某种原因,当我导入"集合"模块时,它的属性数量非常有限.
我试过了:
import collections # when calling Counter I would then use collections.Counter()
import collections as collect # collect.Counter()
Run Code Online (Sandbox Code Playgroud)
对于这两个我一直得到属性错误.
我也试过了
from collections import Counter
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我得到:
ImportError: cannot import name Counter
Run Code Online (Sandbox Code Playgroud)
这些都在ipython界面和脚本中进行了测试(不导入任何其他内容,只是集合).
有任何想法吗?
我有一个超过1000个密钥的大字典,每个值超过600 000 int long.现在,我需要提取一些这些整数,所以从60万我想去说5k.但它不能随机5k,它们必须处于非常具体的位置.由于5k仍然有点太大而无法手工提取,我需要使用一个索引列表来指示值中应该取出哪些整数.我测试了小列表上的提取,索引[1,3,5,7,9]和long_val ['a','b','c','d','e','f','g ','h','我','j','k']然后我可以这样做:
for each in xrange(len(long_val)):
print indices[long_val[each]]
Run Code Online (Sandbox Code Playgroud)
然后我得到b,d,f,h和j(根据需要).
现在,处理字典(其中long_val被实际字典值替换)并不那么简单.我试过了:
for keys,values in dict_gtps.iteritems():
for each in xrange(len(values)):
abs_new[keys]=pos_3[values[each]]
Run Code Online (Sandbox Code Playgroud)
但我得到"索引超出范围"错误消息.
我想知道你是否可以帮我加速我的python脚本.
我有两个清单:
a=['a','b','c','d','e','f','g','h','i','j']
b=['b','f','g','j']
Run Code Online (Sandbox Code Playgroud)
我想创建一个包含b元素的列表,但是它的长度为a,而不是b中的元素被其他东西替换,比方说'-999'.此外,我不想使用b中的元素索引替换实际元素(a,b,c ...).所以看起来像这样:
c=['-999',0,'-999','-999','-999', 1, 2,'-999','-999',3]
Run Code Online (Sandbox Code Playgroud)
我现在的代码是:
c=[]
counter=0
for each in a:
if each in b:
c.append(counter)
counter+=1
else:
c.append('-999')
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是,在现实生活中,我的列表a长度为600 000个元素,实际上有7个b列表需要迭代它们,所有这些都在3k到250k之间.
关于如何提高速度的任何想法?
我想投一个列smalldatetime从varchar。有些行包含错误,如何找到它们?
SELECT
PA.EAR_TAG
,ISNULL(B.DISPOSAL_DATE, H.DISPOSAL_DATE) as HB_Date
,Y.[DATE OF MOVEMENT] as Y_Date
,DATEDIFF(DAY, ISNULL(B.DISPOSAL_DATE, H.DISPOSAL_DATE), cast(Y.[DATE OF MOVEMENT] as smalldatetime))
FROM
DairyTelomere.dbo.PROJECT_ANIMALS AS PA
LEFT JOIN
Langhill.dbo.YOUNG_STOCK_BULL AS B ON Pa.EAR_TAG = B.EAR_TAG
LEFT JOIN
Langhill.dbo.YOUNG_STOCK_HEIFER AS H ON PA.EAR_TAG = H.EAR_TAG
LEFT JOIN
DairyTelomere.dbo.Young_Stock_culls AS Y ON PA.EAR_TAG = Y.Ear_Tag
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
消息242,级别16,状态3,行1
将varchar数据类型转换为smalldatetime数据类型导致超出范围的值。
我知道,如果该列采用日期格式,则可以使用来检查它,ISDATE()但是很遗憾,我无法更改列类型(没有权限)。
任何想法将不胜感激。
python ×3
dictionary ×2
arrays ×1
axes ×1
collections ×1
counter ×1
extraction ×1
frame ×1
importerror ×1
indexing ×1
iteration ×1
list ×1
matplotlib ×1
max ×1
merge ×1
numpy ×1
performance ×1
python-2.6 ×1
python-2.7 ×1
size ×1
sql ×1
sql-server ×1
subplot ×1