Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2021, 22:02   #1
VeryStupidPerson
Пользователь
 
Аватар для VeryStupidPerson
 
Регистрация: 20.07.2020
Сообщений: 69
По умолчанию Numpy, ошибка, при возведении массива в квадрат.

У меня в коде присутствует функция len_vector, которая возвращает длину вектора (x - одномерный массив numpy)
Код:
import numpy as np
def len_vector(x):
    a = np.sqrt(np.sum(x**2))
    return a
Но, как оказалось, numpy использует конечные типы данных для чисел (а не строки, как в питоне). Мне требовалось измерять солнечную систему в километрах, и максимальной величины чисел в массивах numpy не хватает. Можно ли как-то расширить границу размеров чисел? Или придётся, всё-таки, переписать на питоновские списки?
---------------------------------------------------
Нич-чего не понимаю!
Или что-то случилось, или… одно из двух!
VeryStupidPerson вне форума Ответить с цитированием
Старый 15.02.2021, 00:19   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от VeryStupidPerson Посмотреть сообщение
Но, как оказалось, numpy использует конечные типы данных для чисел
Что такое "конечный тип данных"?

Цитата:
(а не строки, как в питоне)
Вы не ошиблись?

Цитата:
Мне требовалось измерять солнечную систему в километрах, и максимальной величины чисел в массивах numpy не хватает.
Код:
import numpy as np

ae = 150.e6
distMax = 1.e5

def len_vector( x ):
    a = np.sqrt( np.sum(x**2) )
    return a


def main():

    x = np.zeros( 3 ) # dtype = np.float64 is default.
    x[:] = distMax * ae
    print x
    print len_vector( x )

main()
Vago вне форума Ответить с цитированием
Старый 15.02.2021, 19:40   #3
_human_
Пользователь
 
Регистрация: 15.02.2021
Сообщений: 10
По умолчанию

Это VeryStupidPerson, у меня проблемы со входом, поэтому пришлось создать новый акаунт.
Под конечным типом данным я имел в виду, что они имеют ограниченный размер (занимают опр. количество байт памяти), в то время как сам питон почти все обрабатывает на основе строк, исключая проблему больших чисел. (но занимая много памяти).
Мне требовалось использовать float. Его точности не хватает - планета, которую я прорисовываю в определённых координатах, всё время прыгает, когда располагается вдали от Солнца. Но при передачи в функцию чисел, сравнимых с масштабами солнечной системы, возникала ошибка - извлекался корень из отрицательного числа.
_human_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка 'numpy.ndarray' object is not callable VeryStupidPerson Python 5 16.11.2020 18:19
Ошибка при конвертировании массива Olga_q C# (си шарп) 0 05.10.2019 13:00
NumPy и чтение/запись массива в файл ViktorR Python 8 08.09.2018 15:40
Ошибка при удалении массива - C++ alexboliam Общие вопросы C/C++ 2 29.12.2017 01:15
Переполнение при возведении в степень ruPy Общие вопросы Delphi 1 01.02.2008 19:21