小编con*_*use的帖子

有没有办法打破C中的上级循环?

假设您有两个嵌套的for循环,如下所示:

int i, j;    // Iterators

for(i=0; i<100; ++i) {
     /* do some stuff */
     ...
     for(j=0; j<99; ++j) {
         /* do more stuff */
         ...
         if( someFunction(j,i) == 2 ) {
             /* break out of both loops */
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法(类似于break;一个循环中的命令)在现场结束两个循环?

c loops

6
推荐指数
2
解决办法
188
查看次数

如何在github上分叉一个空的存储库?

似乎github的web-UI不允许在空存储库上使用"Fork"按钮.我想分叉,添加文件,进行提交,然后在其他人完全空的存储库上提取请求.是否有解决方法,或者我应该等到他添加文件?

git version-control github repository

6
推荐指数
1
解决办法
2111
查看次数

指针和分配在函数或静态变量和内部分配?

不要害怕我的帖子的长度,它很简单,我只是不知道如何把它更短:

我有两种方法可以做一些非常类似于通过函数合并两个数组的方法.我在这里调用该函数combine_data().该阵列称为data1data2.假设我的数组如下:

int num1 = 4;
int num2 = 6;

double data1[num1] = /* some values */
double data2[mum2] = /* some values */
Run Code Online (Sandbox Code Playgroud)

解决方案1

我可以使用我发现更优雅的解决方案,但我不确定这是不是很好的做法,并且行为正常.该解决方案依赖于旨在使数组持久化的静态变量.不知怎的,感觉它可能会以某种方式在我的脸上爆炸.

// SOLUTION 1
double* combine_data(
    const int num1, const double* const data1,
    const int num2, const double* const data2
) {
    int i;
    int num = num1 + num2;
    double *combi;   // static because the data stored the should persist
    combi = (double*)malloc( num*sizeof(*combi) );
    /* …
Run Code Online (Sandbox Code Playgroud)

c static pointers

5
推荐指数
1
解决办法
341
查看次数

如何根据条件在`np.array()`中设置单元格值?

我有一个numpy数组和该数组中的有效值列表:

import numpy as np
arr = np.array([[1,2,0], [2,2,0], [4,1,0], [4,1,0], [3,2,0], ... ])
valid = [1,4]
Run Code Online (Sandbox Code Playgroud)

是否有一种很好的pythonic方法可以将所有数组值设置为零,这些方法不在有效值列表中并就地执行?执行此操作后,列表应如下所示:

               [[1,0,0], [0,0,0], [4,1,0], [4,1,0], [0,0,0], ... ]
Run Code Online (Sandbox Code Playgroud)

以下内容在内存中创建了一个数组副本,这对大型数组不利:

arr = np.vectorize(lambda x: x if x in valid else 0)(arr)
Run Code Online (Sandbox Code Playgroud)

它让我烦恼,现在我遍历每个数组元素并将其设置为零(如果它在valid列表中).

编辑:我找到了一个答案,表明没有就地功能来实现这一目标.也停止改变我的空白.更容易看到arr它们的变化.

python arrays numpy

5
推荐指数
1
解决办法
179
查看次数

Python 标准库的入口点是如何注册的?

常规 Python 包在它们的入口点注册setup.py或在pyporject.toml文件中指定它们。后者就是这种情况,如果他们不使用 distutils/setuptools 进行打包。例如,setuptools 自己的 setup.py将其作为以下参数之一setuptools.setup()

    entry_points={
        "setuptools.finalize_distribution_options": [
            "parent_finalize = setuptools.dist:_Distribution.finalize_options",
            "features = setuptools.dist:Distribution._finalize_feature_opts",
            "keywords = setuptools.dist:Distribution._finalize_setup_keywords",
            "2to3_doctests = "
            "setuptools.dist:Distribution._finalize_2to3_doctests",
        ],
Run Code Online (Sandbox Code Playgroud)

题:

当标准库包与 python 捆绑在一起时,它们如何注册它们的入口点?

例如,distutils它本身有一setup_keywords组入口点。

>>> for ep in pkg_resources.iter_entry_points(group='distutils.setup_keywords'):
>>>    print(ep)

convert_2to3_doctests = setuptools.dist:assert_string_list
dependency_links = setuptools.dist:assert_string_list
eager_resources = setuptools.dist:assert_string_list
exclude_package_data = setuptools.dist:check_package_data
extras_require = setuptools.dist:check_extras
include_package_data = setuptools.dist:assert_bool
install_requires = setuptools.dist:check_requirements
namespace_packages = setuptools.dist:check_nsp
package_data = setuptools.dist:check_package_data
# ... and so on …
Run Code Online (Sandbox Code Playgroud)

python standard-library entry-point

5
推荐指数
1
解决办法
317
查看次数

一线从可能的目录列表中获取文件的统一列表?

假设我们有一个目录列表,其中某些目录可能不存在

dirs = ['dir1','dir2','dir3']
Run Code Online (Sandbox Code Playgroud)

为了论证,仅存在两个,它们的内容是:

目录1
  --file1a
  --file1b
目录2
  --file2a
  --file2b

统一列出所有文件的最佳方式是什么?我最接近的是:

import os
files = [ os.listdir(x) for x in ['dir1','dir','dir3'] if os.path.isdir(x) ]
Run Code Online (Sandbox Code Playgroud)

但这给了我一个嵌套列表:

[['file1a','file1b'],['file2a','file2b']]
Run Code Online (Sandbox Code Playgroud)

如果我希望使用那种单线纸['file1a', 'file1b', 'file2a', 'file2b']呢?

python directory list python-2.7

4
推荐指数
1
解决办法
335
查看次数

switch语句中的声明

考虑这个C代码,其中fooint:

switch(foo){
    case 1: {
        int bla = 255;
        case 2:
            printf("case12 %d\n", bla);
        break;
        case 3:
            printf("case3  %d\n", bla);
    }
};
Run Code Online (Sandbox Code Playgroud)

对于不同foo的代码值,给出以下输出:

case12 255   # foo=1
case12 255   # foo=2
case3  0     # foo=3
Run Code Online (Sandbox Code Playgroud)

我有一个问题的理解foo=3.声明bla和定义其值的行不应该在何时执行foo=3.switch语句应该直接跳转到标签case 3:.然而,没有警告,所以bla似乎至少已经宣布.它可能是未初始化的,但它的价值恰好是0.你能解释一下,"案例3"中发生了什么,以及为什么这是合法的C代码?

c declaration switch-statement

4
推荐指数
1
解决办法
105
查看次数

如何在不使用Matplotlib缩放图像图中缩放图像的情况下重新缩放轴?

我有一个简单的图像图,像这样:

import numpy as np
import matplotlib.pyplot as plt

data = np.arange(25)
data.shape = (5,5)

plt.imshow(data, interpolation='none')
plt.show()
Run Code Online (Sandbox Code Playgroud)

在这种情况下,输入数据为5x5矩阵。轴上的刻度从0到4。如何在不更改显示图像的情况下将此范围更改为10到50?我想在不缩放图像的情况下重新缩放轴。

python matplotlib scale

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

有没有一种方便的方法可以将比例指示器添加到 matplotlib 中的绘图中?

我想在下面的(否则)空图中标记为“10kpc”的图中添加一个比例指示器。所以基本上,轴使用一个度量单位,我想用不同的单位表示图中的长度。它必须具有与下面相同的样式,即|----| 上面有文字的栏。

在 matplotlib 中是否有一种方便的方法来做到这一点,还是我必须画三行(两条小垂直线,一条水平线)并添加文本?一个理想的解决方案甚至不需要我在数据维度中设置坐标,即我只是说一些沿线的内容horizontalalignment='left', verticalalignment='bottom', transform=ax.transAxes并仅指定数据坐标中的宽度。

在我得出结论之前,我与annotate()arrow()和他们的文档争吵了一下,他们并不是很有用,但我可能是错的。

编辑:

下面的代码是最接近的,我到目前为止。我仍然不喜欢在数据坐标系中指定 x 坐标。我唯一想在数据中指定的是条的宽度。其余部分应放置在绘图系统中,理想情况下,条形图应相对于文本(上方几个像素)放置。

import matplotlib.pyplot as plt 
import matplotlib.transforms as tfrms
plt.imshow(somedata)
plt.colorbar()
ax = plt.gca()
trans = tfrms.blended_transform_factory( ax.transData, ax.transAxes )
plt.errorbar( 5, 0.06, xerr=10*arcsecperkpc/2, color='k', capsize=5, transform=trans )
plt.text( 5, 0.05, '10kpc',  horizontalalignment='center', verticalalignment='top', transform=trans )
Run Code Online (Sandbox Code Playgroud)

带有刻度指示器的空图

annotations matplotlib

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

如何对字符串中的所有行共同使用bash"吃"缩进字符?

我在shell变量中有一些多行字符串.字符串的所有行都有一个未知的缩进级别,至少有几个空格字符(在我的示例中为8个空格,但可以是任意的).我们来看一下这个示例字符串:

        I am at the root indentation level (8 spaces).
        I am at the root indentation level, too.
            I am one level deeper
            Am too
        I am at the root again
                I am even two levels deeper
                    three
                two
            one
        common
        common
Run Code Online (Sandbox Code Playgroud)

我想要的是一个Bash函数或命令去掉常见的缩进级别(这里有8个空格),所以我得到了这个:

I am at the root indentation level (8 spaces).
I am at the root indentation level, too.
    I am one level deeper
    Am too
I am at the root again
        I am even two levels deeper
            three …
Run Code Online (Sandbox Code Playgroud)

string bash indentation line-by-line

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

如何从焦虑矩阵生成等高线图?

我有一个称为o_potential填充了一些值的焦虑矩阵,并希望从中生成一个等高线图.我尝试了几种方法但没有成功.这就是我现在所拥有的.

n = 20
x = arange(0,n-1)
y = arange(0,n-1)
plt.contourf(x, y, o_potential[x][y])
plt.show()
Run Code Online (Sandbox Code Playgroud)

o_potential 看起来像这样

o_potential = [[ -1.,          -1.,          -1.,          -1.,          -1.        ],
 [ 10.,           4.12244898,   2.7755102,    4.12244898,  10.        ],
 [ 10.,           5.7755102,    4.24489796,   5.7755102,   10.        ],
 [ 10.,           4.12244898,   2.7755102,    4.12244898,  10.        ],
 [ -1.,          -1.,          -1.,          -1.,          -1.        ]]
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:"用作索引的数组必须是整数(或布尔)类型."

我昨天一直在努力解决这个问题.我尝试了几乎所有Google搜索结果,但无法解决问题.非常感谢您的帮助!

python matplotlib

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

在bash脚本/命令中找出用户名的最佳方法是什么?

到目前为止,我在脚本,别名和shell中使用了类似的东西:

qstat -u $USER
Run Code Online (Sandbox Code Playgroud)

现在我发现$USER变量也不$USERNAME是bash内置的变量.虽然$UID$EUID是.

我当然可以使用$(whoami)或类似的东西.有很多方法可以找出当前进程的用户名.但是最好的,最有活力和最短的一个是什么?为什么?

bash

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

我使用哪个 Matplotlib 格式说明符来使轮廓标签尽可能简洁?

所以我正在做一个带有内联标签的等高线图。标签应尽可能简洁。到目前为止,我正在使用:

import matplotlib.pyplot as plt
CS = plt.contour(dat, [2e6, 5e8, 8e11], norm = LogNorm(vmin=cutoff))
plt.clabel(CS, fontsize=9, inline=1, fmt="%.0g")
Run Code Online (Sandbox Code Playgroud)

这导致标签像

2e-06 5e+08 8e+11

我认为指数中不应该有前导零,如果指数为正,则应省略 sing,即上面的示例应为:

2e-6 5e8 2e11

我可以使用什么格式说明符或格式化程序函数来实现这一点?

python matplotlib number-formatting

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