ошибка numpy zeros — ошибка типа: тип данных не понятен для np.zeros

#python-3.x #numpy #pickle

#python-3.x #numpy #рассол

Вопрос:

    dir_path='/home/jeevitha/8_8_192_features'
    #count = 1
    for name in os.listdir(dir_path):
    #count  = 1
    video_id = name.split('.')[0]
    fname='/home/jeevitha/8_8_192_features' video_id '.pkl'
    if not (os.path.isfile(fname) ):
        video_file_path=os.path.join(dir_path, name)
        features=open(video_file_path, 'rb')  
        features=list() 
        new_features = np.zeros(8,8,192)
        for i in features:
            new_features =features[i]
        new_features=new_features/len(features)
        dump(features,open(fname,'wb'))  
  

пожалуйста, помогите мне сохранить файл pickle с использованием np.zeros

я попытался импортировать математику, и numpy по-прежнему выдает ошибку типа «тип данных не понят»

Ответ №1:

Это должно быть

 new_features = np.zeros([8,8,192])
  

Редактировать:
В этом фрагменте есть еще кое-что неправильное.

 features=open(video_file_path, 'rb')  
features=list() #remove this. debug code?
new_features = np.zeros(8,8,192)
for i in features:
    new_features =features[i]
new_features=new_features/len(features)
dump(features,open(fname,'wb')) 
  

функции устанавливаются в пустой список и сохраняются.
Более того, я полагаю, вы хотите сохранить new_features?

Комментарии:

1. new_features = np.zeros([8,8,192]) если я выполню, как указано выше, следующий код, форма объекта pickle показывает (0,) вместо (8,8,192) из импорта pickle load features=load(open(‘/home/jeevitha/8_8_192_features_mean/ 0lh_UWF9ZP4_148_155.pkl’,’rb’)) подвиг=np.array(объекты) печать (подвиг.форма)

2. не знаю, что делает остальная часть кода, но у меня это работает: zeros = np.zeros([8,8,192]) pickle.dump(zeros, open('/tmp/uiae', 'wb')) x = pickle.load(open('/tmp/uiae', 'rb')) x.shape Out[51]: (8, 8, 192)

Ответ №2:

В случае нескольких измерений вы должны предоставить кортеж, смотрите здесь

np.zeros((8,8,192)) — это то, что вы хотите, или np.zeros ([8,8,192]), как сказал filthysocks

Комментарии:

1. на самом деле 8,8,192 — это форма для хранения исходного файла изображения, оба формата показывают тот же результат, что и (0,)

Ответ №3:

он отсортирован,

  dir_path='/home/jeevitha/8_8_192_features'
    #count = 1
    for name in os.listdir(dir_path):
    #count  = 1
    video_id = name.split('.')[0]
    fname='/home/jeevitha/8_8_192_features' video_id '.pkl'
    if not (os.path.isfile(fname) ):
        video_file_path=os.path.join(dir_path, name)
        features=open(video_file_path, 'rb')  
        features=list() 
        new_features = np.zeros([8,8,192])
        for i in features:
            new_features =features[i]
        new_features=new_features/len(features)
        dump(new_features,open(fname,'wb'))