小编bra*_*n85的帖子

numpy数组的最大大小是多少?

我正在尝试创建一个包含2 708 000 000个元素的矩阵.当我尝试创建这个大小的numpy数组时,它给了我一个值错误.有什么办法可以增加最大阵列大小吗?

一个= np.arange(27.08亿)

ValueError Traceback(最近一次调用最后一次)

ValueError:超出允许的最大大小

arrays size numpy max python-2.7

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

删除帧同时保持轴在pyplot子图中

我正在创建一个包含3个子图的图形,并且想知道是否有任何方法可以移除它们周围的框架,同时保持轴的位置?

axes matplotlib frame subplot

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

在python中合并字典值列表

我正在尝试合并三个词典,它们都具有相同的键,以及值列表或单个值.

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)

python merge dictionary list

14
推荐指数
3
解决办法
2万
查看次数

Collections模块中的计数器Python

我遇到了一个非常奇怪的问题.我正在尝试在集合模块中使用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界面和脚本中进行了测试(不导入任何其他内容,只是集合).

有任何想法吗?

collections counter python-2.6 python-import importerror

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

在python字典中编辑值

我有一个超过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 indexing dictionary extraction

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

如何在python中加速迭代?

我想知道你是否可以帮我加速我的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之间.

关于如何提高速度的任何想法?

python iteration performance

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

在SQL Server中查找导致类型转换错误的行

我想投一个列smalldatetimevarchar。有些行包含错误,如何找到它们?

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()但是很遗憾,我无法更改列类型(没有权限)。

任何想法将不胜感激。

sql sql-server date-conversion

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