相关疑难解决方法(0)

如何将多维数组写入文本文件?

在另一个问题中,如果我可以提供我遇到问题的阵列,其他用户会提供一些帮助.但是,我甚至在基本的I/O任务中失败,例如将数组写入文件.

任何人都可以解释我需要将4x11x14 numpy数组写入文件需要什么样的循环?

这个数组包含四个11 x 14数组,所以我应该用一个漂亮的换行符来格式化它,以便在其他数据上更容易读取文件.

编辑:所以我尝试了numpy.savetxt函数.奇怪的是,它给出了以下错误:

TypeError: float argument required, not numpy.ndarray
Run Code Online (Sandbox Code Playgroud)

我假设这是因为该函数不适用于多维数组?我想在一个文件中找到任何解决方案吗?

python file-io numpy

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

如何正确保存和加载numpy.array()数据?

我想知道,如何numpy.array正确保存和加载数据.目前我正在使用该numpy.savetxt()方法.例如,如果我有一个数组markers,看起来像这样:

在此输入图像描述

我尝试通过以下方式保存它:

numpy.savetxt('markers.txt', markers)
Run Code Online (Sandbox Code Playgroud)

在其他脚本中,我尝试打开以前保存的文件:

markers = np.fromfile("markers.txt")
Run Code Online (Sandbox Code Playgroud)

这就是我得到的......

在此输入图像描述

保存的数据首先如下所示:

0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
0.000000000000000000e+00
Run Code Online (Sandbox Code Playgroud)

但是当我通过使用相同的方法保存刚加载的数据时,即.numpy.savetxt()它看起来像这样:

1.398043286095131769e-76
1.398043286095288860e-76
1.396426376485745879e-76
1.398043286055061908e-76
1.398043286095288860e-76
1.182950697433698368e-76
1.398043275797188953e-76
1.398043286095288860e-76
1.210894289234927752e-99
1.398040649781712473e-76
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?PS我没有其他"后台"操作.只需保存和加载,这就是我得到的.先感谢您.

python arrays numpy

75
推荐指数
3
解决办法
15万
查看次数

numpy savetxt格式化为整数不保存零

我试图通过以下方式将numpy.array保存到.csv.

with open("resultTR.csv", "wb") as f:
    f.write(b'ImageId,Label\n')
    numpy.savetxt(f, result, fmt='%i', delimiter=",")
Run Code Online (Sandbox Code Playgroud)

结果是numpy.array,它由两列组成,第一列是索引(数字1到n),第二列是(0,9).

不幸的是,我有问题,只要第二列中有0,那么在第二列中没有任何内容写入生成的.csv文件.

换句话说,前五行数组如下所示:

[[  1.00000000e+00   2.00000000e+00]
 [  2.00000000e+00   0.00000000e+00]
 [  3.00000000e+00   9.00000000e+00]
 [  4.00000000e+00   9.00000000e+00]
 [  5.00000000e+00   3.00000000e+00]
Run Code Online (Sandbox Code Playgroud)

前五行的.csv文件如下:

ImageId,Label
1,2
2
3,9
4,9
5,3
Run Code Online (Sandbox Code Playgroud)

它看起来像我的代码应该工作,因此不保存零似乎在我看来非常奇怪.有没有人知道我的代码写入.csv文件可能有什么问题?

编辑:

仅仅为了完成我的python版本是2.7.2并且它在Mac OS X 10.9.2上运行

python csv arrays numpy

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

在python中打印二维数组

我必须在5x5数组中打印这个python代码,数组应如下所示:

0 1 4 (infinity) 3
1 0 2 (infinity) 4
4 2 0  1         5
(inf)(inf) 1 0   3
3 4 5   3        0
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我打印这张桌子吗?使用指数.

for k in range(n):
        for i in range(n):
            for j in range(n):
                if A[i][k]+A[k][j]<A[i][j]:
                    A[i][j]=A[i][k]+A[k][j]
Run Code Online (Sandbox Code Playgroud)

python

20
推荐指数
4
解决办法
18万
查看次数

如何将numpy ndarray保存为.csv文件?

我创建了一个numpy数组如下:

import numpy as np

names  = np.array(['NAME_1', 'NAME_2', 'NAME_3'])
floats = np.array([ 0.1234 ,  0.5678 ,  0.9123 ])

ab = np.zeros(names.size, dtype=[('var1', 'U6'), ('var2', float)])
ab['var1'] = names
ab['var2'] = floats
Run Code Online (Sandbox Code Playgroud)

ab如下所示:

array([(u'NAME_1',  0.1234), (u'NAME_2',  0.5678), (u'NAME_3',  0.9123)],
      dtype=[('var1', '<U6'), ('var2', '<f8')])
Run Code Online (Sandbox Code Playgroud)

当我尝试ab使用savetxt()命令保存为.csv文件时,

np.savetxt('D:\test.csv',ab,delimiter=',')
Run Code Online (Sandbox Code Playgroud)

我得到以下错误

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-66-a71fd201aefe> in <module>()
----> 1 np.savetxt('D:\Azim\JF-Mapping-workflow-CRM\Backup\delete.csv',ab,delimiter=',')

c:\python27\lib\site-packages\numpy\lib\npyio.pyc in savetxt(fname, X, fmt, delimiter, newline, header, footer, comments)
   1256                     raise TypeError("Mismatch …
Run Code Online (Sandbox Code Playgroud)

python arrays numpy python-2.7

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

Python将numpy数组写入CSV文件

我正在尝试将2D numpy数组写入CSV文件我试过这个:

import csv
import numpy as np

w = csv.writer(open('main.csv','w'))

Nlayers=23
N=364
TempLake=np.zeros((N,Nlayers))

for i in xrange(N-1):
    TempLake[i+1]=TempLake[i]+100

w.writerow(TempLake)

outfile = open('main.csv', 'w')

writer = csv.writer(outfile)

ar=np.array(TempLake)

for row in TempLake:
    writer.writerow(row)
outfile.close()
Run Code Online (Sandbox Code Playgroud)

为什么有些行仍然有引号?谢谢

python csv numpy

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

如何提取没有索引号的特定列。以及 python 数据框中的所有行?

#df

index  a   b   c
1      2   3   4
2      3   4   5
Run Code Online (Sandbox Code Playgroud)

请帮助我如何提取包含所有行但没有索引列的“a”和“c”列。

df[["a","c"]] # 但是索引没有。也来了,那么如何去掉索引号呢?

python python-3.x

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

如何在keras中存储每个时期的操作结果(如TOPK)

我在 keras 中编写了一个自定义层。在这个自定义层的一部分中,可以说我有一个这样的矩阵:

c = tf.cast(tf.nn.top_k(tf.nn.top_k(n, tf.shape(n)[1])[1][:, ::-1], tf.shape(n)[1])[1][:, ::-1], dtype=tf.float32)
Run Code Online (Sandbox Code Playgroud)

我的问题是如何跟踪每个时期的结果值?

例如,如果我有 20 个纪元,我需要将这个矩阵的 20 个保存在一个csv文件中。

(我知道如何保存模型的权重,但这是中间层操作的结果,我需要跟踪这个矩阵)。

我做了什么:

这是我的层的结构:

class my_layer(Layer):
    def __init__(self, topk, ctype, **kwargs):
    self.x_prev = None
    self.topk_mat = None

   def call(self, x):
     'blah blah'

   def get_config(self):
      'blah blah'

   def k_comp_tanh(self,x, f=6):
     'blah blah'
      if self.topk_mat is None:
            self.topk_mat = self.add_weight(shape=(20, 25),
                                          initializer='zeros',
                                          trainable=False,
                                          # dtype=tf.float32,
                                          name='topk_mat')

     c = tf.cast(tf.nn.top_k(tf.nn.top_k(n, tf.shape(n)[1])[1][:, ::-1], tf.shape(n)[1])[1][:, ::-1], dtype=tf.float32)
     self.topk_mat.assign(c)
Run Code Online (Sandbox Code Playgroud)

用于构建模型和拟合数据的代码:

class AutoEncoder(object):
def __init__(self, input_size, dim, comp_topk=None, ctype=None, …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow

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

To_CSV pandas列的唯一值

当我使用以下内容时:

import pandas as pd
data = pd.read_csv('C:/Users/Z/OneDrive/Python/Exploratory Data/Aramark/ARMK.csv')
x = data.iloc[:,2]
y = pd.unique(x)
y.to_csv('yah.csv')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

AttributeError: 'numpy.ndarray' object has no attribute 'to_csv'
Run Code Online (Sandbox Code Playgroud)

python csv numpy pandas

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

使用OpenCV的光流 - 水平和垂直组件

我有以下代码,可以找到2个图像(或2个视频帧)的光流,并且它是彩色编码的.我想要的是光流的水平和垂直分量(如单独的图像)

这是我到目前为止的代码:

import cv2
import numpy as np
frame1 = cv2.imread('my1.bmp')
frame2 = cv2.imread('my2.bmp')
prvs = cv2.cvtColor(frame1,cv2.COLOR_BGR2GRAY)
next = cv2.cvtColor(frame2,cv2.COLOR_BGR2GRAY)
hsv = np.zeros_like(frame1)
hsv[...,1] = 255

while(1):
    next = cv2.cvtColor(frame2,cv2.COLOR_BGR2GRAY)
    flow = cv2.calcOpticalFlowFarneback(prvs, next, 0.5, 3, 15, 3, 5, 1.2, 0)
    mag, ang = cv2.cartToPolar(flow[...,0], flow[...,1])
    hsv[...,0] = ang*180/np.pi/2
    hsv[...,2] = cv2.normalize(mag,None,0,255,cv2.NORM_MINMAX)
    rgb = cv2.cvtColor(hsv,cv2.COLOR_HSV2BGR)

    cv2.imshow('frame2',rgb)
    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break
    elif k == ord('s'):
        cv2.imwrite('opticalmyhsv.pgm',rgb)

cap.release()
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

鉴于我的两张图片,这就是光流的样子:

python opencv image-processing video-processing opticalflow

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