相关疑难解决方法(0)

如何使用python numpy.savetxt将字符串和浮点数写入ASCII文件?

我有一组包含字符串和浮点数的列表,例如:

import numpy as num

NAMES  = num.array(['NAME_1', 'NAME_2', 'NAME_3'])
FLOATS = num.array([ 0.5    , 0.2     , 0.3     ])

DAT =  num.column_stack((NAMES, FLOATS))
Run Code Online (Sandbox Code Playgroud)

我想将这两个列表堆叠在一起,并以列的形式将它们写入文本文件; 因此,我想使用numpy.savetxt(如果可能的话)来做到这一点.

num.savetxt('test.txt', DAT, delimiter=" ") 
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到以下错误:

>>> num.savetxt('test.txt', DAT, delimiter=" ") 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/numpy-1.8.0.dev_9597b1f_20120920-py2.7-macosx-10.8-x86_64.egg/numpy/lib/npyio.py", line 1047, in savetxt
    fh.write(asbytes(format % tuple(row) + newline))
TypeError: float argument required, not numpy.string_
Run Code Online (Sandbox Code Playgroud)

理想的输出文件如下所示:

NAME_1    0.5
NAME_2    0.2
NAME_3    0.3
Run Code Online (Sandbox Code Playgroud)

如何将字符串和浮点数写入文本文件,可能避免使用csv(我想让其他人可读)?有没有另一种方法来做这个而不是使用numpy.savetxt

python numpy list output

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

NumPy"记录数组"或"结构化数组"或"重新排列"

如果有的话,NumPy"结构化数组","记录数组"和"重新排列"之间的区别是什么?

NumPy的文档 暗示,前两个是相同的:如果是这样,这是该对象的首选术语?

同样的文件说,(在页面的底部):你可以找到关于recarrays和结构化阵列(包括两者之间的区别)一些更多的信息在这里.这种差异有一个简单的解释吗?

python numpy data-structures

19
推荐指数
2
解决办法
6217
查看次数

如何在不改变其维度的情况下将名称添加到 numpy 数组?

我有一个现有的两列 numpy 数组,我需要向其中添加列名。在下面的块 1dtype显示的玩具示例中传递那些通过工作。但是,对于我的实际数组,如Block 2所示,相同的方法会产生意外(对我而言!)更改数组维度的副作用。

如何将我的实际数组(在Y下面第二个块中命名的数组)转换为具有命名列的数组,就像我A在第一个块中为数组所做的那样?

第 1 块:(A未重塑维度的已命名列)

import numpy as np
A = np.array(((1,2),(3,4),(50,100)))
A
# array([[  1,   2],
#        [  3,   4],
#        [ 50, 100]])
dt = {'names':['ID', 'Ring'], 'formats':[np.int32, np.int32]}
A.dtype=dt
A
# array([[(1, 2)],
#        [(3, 4)],
#        [(50, 100)]], 
#       dtype=[('ID', '<i4'), ('Ring', '<i4')])
Run Code Online (Sandbox Code Playgroud)

第 2 块:(命名我的实际数组的列Y,重塑其维度)

import numpy as np
## Code to reproduce Y, the array …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

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

python numpy:更改numpy矩阵的列类型

我有一个numpy矩阵X,并且尝试使用以下代码更改列1的数据类型:

X[:, 1].astype('str')
print(type(X[0, 1]))
Run Code Online (Sandbox Code Playgroud)

但我得到以下结果:

<type 'numpy.float64'>
Run Code Online (Sandbox Code Playgroud)

有人知道为什么类型没有更改为str吗?更改X列类型的正确方法是什么?谢谢!

python types numpy

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

转换numpy数组中特定列的dtype

我想更改 numpy 列数据类型,但是当我替换原始 numpy 列时,dtype 不会成功更改。

import numpy as np 

arraylist =[(1526869384.273246, 0, 'a0'),
(1526869385.273246, 1, 'a1'),
(1526869386.273246, 2, 'a2'),
(1526869387.273246, 3, 'a3'),
(1526869388.273246, 4, 'a4'),
(1526869389.273246, 5, 'a5'),
(1526869390.273246, 6, 'a6'),
(1526869391.273246, 7, 'a7'),
(1526869392.273246, 8, 'a8'),
(1526869393.273246, 9, 'a9'),
(1526869384.273246, 0, 'a0'),
(1526869385.273246, 1, 'a1'),
(1526869386.273246, 2, 'a2'),
(1526869387.273246, 3, 'a3'),
(1526869388.273246, 4, 'a4'),
(1526869389.273246, 5, 'a5'),
(1526869390.273246, 6, 'a6'),
(1526869391.273246, 7, 'a7'),
(1526869392.273246, 8, 'a8'),
(1526869393.273246, 9, 'a9')]

array =  np.array(arraylist)

array.dtype

dtype('<U32')

array[:,0]=array[:,0].astype("float64")
array[:,0].dtype 

>>> dtype('<U32') …
Run Code Online (Sandbox Code Playgroud)

python arrays types numpy type-conversion

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

标签 统计

numpy ×5

python ×5

arrays ×2

types ×2

data-structures ×1

list ×1

output ×1

type-conversion ×1