我想从一个numpy 2d数组中提取一个具有指定大小的numpy数组 - 基本上我想裁剪数组.例如,如果有一个像这样的numpy数组:
([1,2,3],
[4,5,6],
[7,8,9])
Run Code Online (Sandbox Code Playgroud)
我想从中提取2x2,结果应该是:
([1,2],
[4,5])
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我重新学习C; 这已经是好几年了,而熟悉的细微差别已经及时消失了.
我最初是C从K&R 那里学到的.但是,我现在看到很多人在K&R批评批评.
一个主要的例子是http://c.learncodethehardway.org/book/learn-c-the-hard-waych55.html#x61-27200055
主要原因似乎是它的代码风格过于简洁,实践不适用于较大的程序并导致内存泄漏或受共享网络可访问系统的攻击.
人们觉得这些批评是否公平?他们对有人学习有用C吗?如果是这样,人们可以推荐一本"现代" C书,最好是Kindle吗?
假设我们希望处理迭代器并希望通过块来处理它.
每个块的逻辑取决于先前计算的块,因此groupby()没有帮助.
在这种情况下,我们的朋友是itertools.takewhile():
while True:
chunk = itertools.takewhile(getNewChunkLogic(), myIterator)
process(chunk)
Run Code Online (Sandbox Code Playgroud)
问题是takewhile()需要经过满足新块逻辑的最后一个元素,因此"吃掉"下一个块的第一个元素.
有各种解决方案,包括包装或àC ungetc()等.
我的问题是:有一个优雅的解决方案吗?
我一直在寻找一种方法来有效地检查numpy数组中的重复项,并偶然发现一个包含使用此代码的答案的问题.
这条线在numpy中意味着什么?
s[s[1:] == s[:-1]]
Run Code Online (Sandbox Code Playgroud)
想要在应用之前理解代码.在Numpy doc中查看但很难找到这些信息.
我在Mac上使用'requests'模块时遇到问题.我使用python34并通过pip安装了'requests'模块.我可以通过再次运行安装来验证这一点,它会告诉我已经安装了模块.
15:49:29|mymac [~]:pip install requests
Requirement already satisfied (use --upgrade to upgrade): requests in /opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages
Run Code Online (Sandbox Code Playgroud)
虽然我可以通过交互式Python解释器导入"请求"模块,但尝试在PyCharm中执行"导入请求"会产生错误"无模块命名请求".我检查了我的PyCharm Python解释器设置,并且(我相信)它设置为与我的环境中使用的python34相同.但是,我也看不到PyCharm中列出的"请求"模块.

很明显,我在这里遗漏了一些东西.你们可以建议我应该在哪里看,或者我应该修复什么才能让这个模块正常工作?我的印象是,当我在我的环境中通过pip安装模块时,PyCharm会检测到这些变化.然而,似乎有些事情在我身边被打破了......
我需要在NLTK中编写一个程序,将一个语料库(大量的txt文件)分成unigrams,bigrams,trigrams,fourgrams和fivegrams.我已经编写了代码将我的文件输入到程序中.
输入是用英文写的300 .txt文件,我希望以Ngrams的形式输出,特别是频率计数.
我知道NLTK有Bigram和Trigram模块:http://www.nltk.org/_modules/nltk/model/ngram.html
但我不是那么先进,他们进入我的计划.
输入:txt文件不是单句
输出示例:
Bigram [('Hi', 'How'), ('How', 'are'), ('are', 'you'), ('you', '?'), ('?', 'i'), ('i', 'am'), ('am', 'fine'), ('fine', 'and'), ('and', 'you')]
Trigram: [('Hi', 'How', 'are'), ('How', 'are', 'you'), ('are', 'you', '?'), ('you', '?', 'i'), ('?', 'i', 'am'), ('i', 'am', 'fine'), ('am', 'fine', 'and'), ('fine', 'and', 'you')]
Run Code Online (Sandbox Code Playgroud)
我的代码到目前为止:
from nltk.corpus import PlaintextCorpusReader
corpus = 'C:/Users/jack3/My folder'
files = PlaintextCorpusReader(corpus, '.*')
ngrams=2
def generate(file, ngrams):
for gram in range(0, ngrams):
print((file[0:-4]+"_"+str(ngrams)+"_grams.txt").replace("/","_"))
for file in files.fileids(): …Run Code Online (Sandbox Code Playgroud) 我们已经知道函数参数曾经有255个显式传递参数的限制.但是,此行为现在已更改,因为Python-3.7没有限制,除了sys.maxsize实际上是python容器的限制.但是局部变量怎么样?
我们基本上不能以动态方式向函数添加局部变量和/或locals()不允许直接更改字典,以便人们甚至可以用暴力方式测试它.但问题是,即使您更改locals()使用compile模块或exec函数它也不会影响function.__code__.co_varnames,因此,您无法在函数内显式访问变量.
In [142]: def bar():
...: exec('k=10')
...: print(f"locals: {locals()}")
...: print(k)
...: g = 100
...:
...:
In [143]: bar()
locals: {'k': 10}
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-143-226d01f48125> in <module>()
----> 1 bar()
<ipython-input-142-69d0ec0a7b24> in bar()
2 exec('k=10')
3 print(f"locals: {locals()}")
----> 4 print(k)
5 g = 100
6
NameError: name 'k' is not defined
In [144]: bar.__code__.co_varnames
Out[144]: …Run Code Online (Sandbox Code Playgroud) 使用python 2.4和内置ZipFile库,我无法读取非常大的zip文件(大于1或2 GB),因为它想要将未压缩文件的全部内容存储在内存中.有没有其他方法可以做到这一点(使用第三方库或其他一些黑客),或者我必须"解决"并以这种方式解压缩(显然不是跨平台).
我有一个文本文件,其中包含一个由数字组成的表,例如:
5 10 6
6 20 1
7 30 4
8 40 3
9 23 1
4 13 6
例如,如果我想要仅包含在第二列中的数字,我如何将该列提取到列表中?
我知道如何将字典转换为Python中的列表,但不知何故,当我试图得到结果列表的总和时,我得到了错误'dict_values' object is not subscriptable.另外,我打算只列出清单中的几个项目.
dict = {A:1, B:2, C:3, D:4}
arr = dict.values()
the_sum = sum(arr[1:3])
Run Code Online (Sandbox Code Playgroud)
经过仔细检查,我注意到当打印出结果列表时,它总是dict_values(......)作为我无法删除的输出.我该如何解决这个问题?
python ×8
python-3.x ×3
numpy ×2
arrays ×1
c ×1
compression ×1
dictionary ×1
function ×1
list ×1
macos ×1
namespaces ×1
nltk ×1
pycharm ×1
text-files ×1
unzip ×1
zip ×1