相关疑难解决方法(0)

将不同的数据类型存储在一个NumPy数组中?

我有两个不同的数组,一个是字符串,另一个是整数.我想将它们连接到一个数组中,其中每列都具有原始数据类型.我目前的解决方案(见下文)将整个数组转换为dtype = string,这看起来非常低效.

combined_array = np.concatenate((A, B), axis = 1)

是否有可能多发dtypes的combined_array时候A.dtype = stringB.dtype = int

python arrays types numpy

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

如何更改numpy recarray的某些列的dtype?

假设我有一个如下所示的重组:

import numpy as np

# example data from @unutbu's answer
recs = [('Bill', '31', 260.0), ('Fred', 15, '145.0')]
r = np.rec.fromrecords(recs, formats = 'S30,i2,f4', names = 'name, age, weight')

print(r)
# [('Bill', 31, 260.0) ('Fred', 15, 145.0)]
Run Code Online (Sandbox Code Playgroud)

假设我想将某些列转换为浮点数.我该怎么做呢?我应该换成一个ndarray,然后再回到recarray吗?

python numpy pandas

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

从pandas转换为numpy时如何保留列名

根据这篇文章,我应该能够访问ndarray中列的名称作为a.dtype.names

但是,如果我将pandas DataFrame转换为带有df.as_matrix()或df.values的ndarray,则dtype.names字段为None.此外,如果我尝试将列名称分配给ndarray

X = pd.DataFrame(dict(age=[40., 50., 60.], sys_blood_pressure=[140.,150.,160.]))
print X
print type(X.as_matrix())# <type 'numpy.ndarray'>
print type(X.as_matrix()[0]) # <type 'numpy.ndarray'>

m = X.as_matrix()
m.dtype.names = list(X.columns)
Run Code Online (Sandbox Code Playgroud)

我明白了

ValueError: there are no fields defined
Run Code Online (Sandbox Code Playgroud)

更新:

我特别感兴趣的是矩阵只需要保存一个类型(它是一个特定数字类型的ndarray),因为我也想使用cython进行优化.(我怀疑numpy记录和结构化数组更难以处理,因为它们更自由地输入.)

实际上,我只想维护通过sci-kit预测器深层树的数组的column_name元数据.它的接口的.fit(X,y)和.predict(X)API不允许传递关于X和y对象之外的列标签的附加元数据.

python numpy pandas

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

Python:从 DataFrame 中的两列创建结构化的 numpy 结构化数组

如何从 DataFrame 中的两列创建结构化数组?我试过这个:

df = pd.DataFrame(data=[[1,2],[10,20]], columns=['a','b'])
df

    a   b
0   1   2
1   10  20

x = np.array([([val for val in list(df['a'])],
               [val for val in list(df['b'])])])
Run Code Online (Sandbox Code Playgroud)

但这给了我这个:

array([[[ 1, 10],
        [ 2, 20]]])
Run Code Online (Sandbox Code Playgroud)

但我想要这个:

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

谢谢!

python arrays numpy dataframe pandas

5
推荐指数
2
解决办法
3109
查看次数

Numpy 获取每列的 dtype

我需要获取每列的类型以对其进行正确的预处理。

目前我通过以下方法执行此操作:

import pandas as pd

# input is of type List[List[any]]
# but has one type (int, float, str, bool) per column

df = pd.DataFrame(input, columns=key_labels)
column_types = dict(df.dtypes)
matrix = df.values
Run Code Online (Sandbox Code Playgroud)

由于我只使用 pandas 来获取 dtypes(每列)并使用 numpy 来获取其他所有内容,所以我想从我的项目中删除 pandas。

总之:有没有办法从 numpy 获取每列的(特定)数据类型

!或者:有没有一种快速的方法来重新计算ndarray的dtype(在拼接矩阵之后)

python types numpy pandas data-science

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

标签 统计

numpy ×5

python ×5

pandas ×4

arrays ×2

types ×2

data-science ×1

dataframe ×1