小编Pea*_*cer的帖子

NumPy使用索引列表选择每行的特定列索引

我很难选择NumPy矩阵每行的特定列.

假设我有以下矩阵,我会称之为X:

[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

我还会list调用每行的列索引Y:

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

我需要获取值:

[2]
[4]
[9]
Run Code Online (Sandbox Code Playgroud)

取而代之的是list使用索引Y,我还可以产生一个矩阵具有相同的形状X,每一个列是bool/ int范围在0-1之间的值,表明这是否是必需的列.

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

我知道这可以通过迭代数组并选择我需要的列值来完成.但是,这将在大数据阵列上频繁执行,这就是它必须尽可能快地运行的原因.

我想知道是否有更好的解决方案?

谢谢.

python numpy python-2.7

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

在没有Stata软件的情况下将dta文件转换为csv

有没有办法将dta文件转换为csv

我的计算机上没有安装Stata版本,所以我做不了类似的事情:

File --> "Save as csv"
Run Code Online (Sandbox Code Playgroud)

csv file-conversion stata

65
推荐指数
6
解决办法
12万
查看次数

如何确定Pandas/NumPy中的列/变量是否为数字?

有没有更好的方法来确定变量是否在Pandas和/或NumPy是否numeric

我定义了一个自我dictionarydtypes密钥和numeric/ not作为值.

python numpy pandas

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

将数组或DataFrame与其他信息一起保存在文件中

统计软件Stata允许将短文本片段保存在数据集中.这可以使用notes和/或完成characteristics.

这对我来说是一个很有价值的功能,因为它允许我保存各种信息,从提醒和待办事项列表到有关我如何生成数据的信息,甚至是特定变量的估算方法.

我现在正试图在Python 3.6中提出类似的功能.到目前为止,我已经在线查看了一些帖子,但这些帖子并没有完全解决我想做的事情.

一些参考文章包括:

对于小型NumPy数组,我得出结论,函数numpy.savez()和a 的组合dictionary可以在单个文件中充分存储所有相关信息.

例如:

a = np.array([[2,4],[6,8],[10,12]])
d = {"first": 1, "second": "two", "third": 3}

np.savez(whatever_name.npz, a=a, d=d)
data = np.load(whatever_name.npz)

arr = data['a']
dic = data['d'].tolist()
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在:

是否有更好的方法可以将其他信息包含在包含NumPy数组或(大)的文件中Pandas DataFrame

我在听到有关特定特别感兴趣的优点缺点,你可能有例子的任何建议.依赖性越少越好.

python numpy hdf5 stata pandas

56
推荐指数
3
解决办法
9919
查看次数

阅读R中的Stata 13文件

有没有办法在R中读取Stata版本13数据集文件?

我试图做以下事情:

> library(foreign)
> data = read.dta("TEAdataSTATA.dta") 
Run Code Online (Sandbox Code Playgroud)

但是,我收到了一个错误:

read.dta("TEAdataSTATA.dta")中的错误:
不是Stata版本5-12 .dta文件

有人可以指出是否有办法解决这个问题?

r stata

50
推荐指数
4
解决办法
5万
查看次数

相当于Python中的Stata宏

我正在尝试使用Python进行统计分析.

在Stata中,我可以定义本地宏并根据需要展开它们:

program define reg2
    syntax varlist(min=1 max=1), indepvars(string) results(string)
    if "`results'" == "y" {
        reg `varlist' `indepvars'
    }
    if "`results'" == "n" {
        qui reg `varlist' `indepvars'
    }
end

sysuse auto, clear
Run Code Online (Sandbox Code Playgroud)

所以代替:

reg2 mpg, indepvars("weight foreign price") results("y")
Run Code Online (Sandbox Code Playgroud)

我可以:

local options , indepvars(weight foreign price) results(y) 
reg2 mpg `options'
Run Code Online (Sandbox Code Playgroud)

甚至:

local vars weight foreign price
local options , indepvars(`vars') results(y) 
reg2 mpg `options'
Run Code Online (Sandbox Code Playgroud)

Stata中的宏帮助我编写干净的脚本,而无需重复代码.

在Python中我尝试了字符串插值,但这在函数中不起作用.

例如:

def reg2(depvar, indepvars, results):
    print(depvar)
    print(indepvars)
    print(results)
Run Code Online (Sandbox Code Playgroud)

以下运行正常:

reg2('mpg', 'weight foreign price', …
Run Code Online (Sandbox Code Playgroud)

python stata pandas statsmodels stata-macros

34
推荐指数
2
解决办法
3607
查看次数

将行/列标题添加到NumPy数组

我有一个NumPy ndarray我想添加行/列标题.

数据实际上是7x12x12,但我可以这样表示:

  A=[[[0, 1, 2, 3, 4, 5],
      [1, 0, 3, 4, 5, 6],
      [2, 3, 0, 5, 6, 7],
      [3, 4, 5, 0, 7, 8],
      [4, 5, 6, 7, 0, 9],
      [5, 6, 7, 8, 9, 0]]


     [[0, 1, 2, 3, 4, 5],
      [1, 0, 3, 4, 5, 6],
      [2, 3, 0, 5, 6, 7],
      [3, 4, 5, 0, 7, 8],
      [4, 5, 6, 7, 0, 9],
      [5, 6, 7, 8, 9, 0]]]
Run Code Online (Sandbox Code Playgroud)

其中A是我的2x6x6阵列.

如何在第一行和第一列中插入标题,以便每个数组在我的CSV …

python numpy matrix

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

计算2D NumPy数组中每行和每列内的非零元素

我有一个NumPy矩阵,其中包含大多数非零值,但有时会包含零值.我需要能够:

  1. 计算每行中的非零值,并将该计数放入我可以在后续操作中使用的变量中,可能通过迭代行索引并在迭代过程中执行计算.

  2. 计算每列中的非零值,并将该计数放入我可以在后续操作中使用的变量中,可能通过迭代列索引并在迭代过程中执行计算.

例如,我需要做的一件事是对每一行求和,然后将每行和除以每行中的非零值的数量,为每个行索引报告单独的结果.然后我需要对每列进行求和,然后将列总和除以列中非零值的数量,同时为每个列索引报告单独的结果.我还需要做其他事情,但在我弄清楚如何处理我在这里列出的内容后,它们应该很容易.

我正在使用的代码如下.您可以看到我正在创建一个零数组,然后从csv文件中填充它.某些行将包含所有列的值,但其他行仍会在某些最后一列中保留一些零,从而产生上述问题.

以下代码的最后五行来自此论坛上的另一个帖子.最后五行代码返回零的行/列索引的打印列表.但是,我不知道如何使用该结果信息来创建上述的非零行计数和非零列计数.

ANOVAInputMatrixValuesArray=zeros([len(TestIDs),9],float)
j=0
for j in range(0,len(TestIDs)):
    TestID=str(TestIDs[j])
    ReadOrWrite='Read'
    fileName=inputFileName
    directory=GetCurrentDirectory(arguments that return correct directory)
    inputfile=open(directory,'r')
    reader=csv.reader(inputfile)
    m=0
    for row in reader:
        if m<9:
            if row[0]!='TestID':
                ANOVAInputMatrixValuesArray[(j-1),m]=row[2]
                m+=1
    inputfile.close()

IndicesOfZeros = indices(ANOVAInputMatrixValuesArray.shape) 
locs = IndicesOfZeros[:,ANOVAInputMatrixValuesArray == 0]
pts = hsplit(locs, len(locs[0]))
for pt in pts:
    print(', '.join(str(p[0]) for p in pt))
Run Code Online (Sandbox Code Playgroud)

谁能帮我这个?

python arrays numpy count

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

如何识别/删除R中的非UTF-8字符

当我在R中导入Stata数据集(使用外部包)时,导入有时包含无效的UTF-8字符.这本身就令人不愉快,但是一旦我尝试将对象转换为JSON(使用rjson包),它就会破坏所有内容.

您是否有想法,如何识别字符串中的无效UTF-8字符并在此之后将其删除?

r utf-8 stata

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

将一个NumPy数组拆分为两个数组

假设我有一个NumPy 2D数组A:

>>> import numpy as np
>>> A=np.arange(30).reshape(3,10)
>>> A
array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]])
Run Code Online (Sandbox Code Playgroud)

我需要获得两个数组BC具有以下属性:

B = array([[ 0,  3,  4,  5,  6,  7,  8,  9],
           [10, 13, 14, 15, 16, 17, 18, 19],
           [20, 23, 24, 25, 26, 27, 28, 29]])

C = …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

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